<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>MiXiM: D:/Projects/MiXiM/extsrc/mixim/src/base/phyLayer/MappingUtils.h Source File</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">MiXiM
   &#160;<span id="projectnumber">2.3</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('a00300.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">MappingUtils.h</div>  </div>
</div>
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * SignalInterfaces.h</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> *  Created on: 26.08.2008</span>
<a name="l00005"></a>00005 <span class="comment"> *      Author: karl wessel</span>
<a name="l00006"></a>00006 <span class="comment"> */</span>
<a name="l00007"></a>00007 
<a name="l00008"></a>00008 <span class="preprocessor">#ifndef SIGNALINTERFACES_H_</span>
<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define SIGNALINTERFACES_H_</span>
<a name="l00010"></a>00010 <span class="preprocessor"></span>
<a name="l00011"></a>00011 <span class="preprocessor">#include &quot;MiXiMDefs.h&quot;</span>
<a name="l00012"></a>00012 <span class="preprocessor">#include &quot;MappingBase.h&quot;</span>
<a name="l00013"></a>00013 
<a name="l00014"></a>00014 <span class="keyword">class </span><a class="code" href="a00090.html" title="Takes a source ConstMapping with a domain A and a set of KeyEntries for a domain B and creates a clon...">FilledUpMapping</a>;
<a name="l00015"></a>00015 
<a name="l00029"></a>00029 <span class="keyword">template</span>&lt;<span class="keyword">class</span> Base&gt;
<a name="l00030"></a><a class="code" href="a00023.html">00030</a> <span class="keyword">class </span><a class="code" href="a00023.html" title="This iterator takes another ConstMappingIterator and does just pipe every method to the passed ConstM...">BaseFilteredIterator</a> : <span class="keyword">public</span> Base {
<a name="l00031"></a>00031 <span class="keyword">public</span>:
<a name="l00032"></a>00032   <span class="keyword">typedef</span> <span class="keyword">typename</span> Base::argument_value_t      argument_value_t;
<a name="l00033"></a>00033   <span class="keyword">typedef</span> <span class="keyword">typename</span> Base::argument_value_cref_t argument_value_cref_t;
<a name="l00034"></a>00034 <span class="keyword">protected</span>:
<a name="l00035"></a>00035   Base* origIterator;
<a name="l00036"></a>00036 
<a name="l00037"></a>00037 <span class="keyword">private</span>:
<a name="l00040"></a>00040   <a class="code" href="a00023.html#a79784da3e48dc4ee105c67d19bde054c" title="Copy constructor is not allowed.">BaseFilteredIterator</a>(<span class="keyword">const</span> <a class="code" href="a00023.html" title="This iterator takes another ConstMappingIterator and does just pipe every method to the passed ConstM...">BaseFilteredIterator</a>&amp;);
<a name="l00043"></a>00043   <a class="code" href="a00023.html" title="This iterator takes another ConstMappingIterator and does just pipe every method to the passed ConstM...">BaseFilteredIterator</a>&amp; <a class="code" href="a00023.html#addcff12ae1c2f69a3801ba93562a4633" title="Assignment operator is not allowed.">operator=</a>(<span class="keyword">const</span> <a class="code" href="a00023.html" title="This iterator takes another ConstMappingIterator and does just pipe every method to the passed ConstM...">BaseFilteredIterator</a>&amp;);
<a name="l00044"></a>00044 
<a name="l00045"></a>00045 <span class="keyword">public</span>:
<a name="l00046"></a>00046   <a class="code" href="a00023.html#a79784da3e48dc4ee105c67d19bde054c" title="Copy constructor is not allowed.">BaseFilteredIterator</a>(Base* orig)
<a name="l00047"></a>00047     : Base()
<a name="l00048"></a>00048     , origIterator(orig)
<a name="l00049"></a>00049   {}
<a name="l00050"></a>00050 
<a name="l00051"></a>00051   <span class="keyword">virtual</span> ~<a class="code" href="a00023.html" title="This iterator takes another ConstMappingIterator and does just pipe every method to the passed ConstM...">BaseFilteredIterator</a>() {
<a name="l00052"></a>00052     <span class="keywordflow">if</span> (origIterator)
<a name="l00053"></a>00053       <span class="keyword">delete</span> origIterator;
<a name="l00054"></a>00054   }
<a name="l00055"></a>00055 
<a name="l00056"></a>00056   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; getNextPosition()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> origIterator-&gt;getNextPosition(); }
<a name="l00057"></a>00057 
<a name="l00058"></a>00058   <span class="keyword">virtual</span> <span class="keywordtype">void</span> jumpTo(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) { origIterator-&gt;jumpTo(pos); }
<a name="l00059"></a>00059 
<a name="l00060"></a>00060   <span class="keyword">virtual</span> <span class="keywordtype">void</span> jumpToBegin() { origIterator-&gt;jumpToBegin(); }
<a name="l00061"></a>00061 
<a name="l00062"></a>00062   <span class="keyword">virtual</span> <span class="keywordtype">void</span> iterateTo(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) { origIterator-&gt;iterateTo(pos); }
<a name="l00063"></a>00063 
<a name="l00064"></a>00064   <span class="keyword">virtual</span> <span class="keywordtype">void</span> next() { origIterator-&gt;next(); }
<a name="l00065"></a>00065 
<a name="l00066"></a>00066   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> inRange()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> origIterator-&gt;inRange(); }
<a name="l00067"></a>00067 
<a name="l00068"></a>00068   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasNext()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> origIterator-&gt;hasNext(); }
<a name="l00069"></a>00069 
<a name="l00070"></a>00070   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; getPosition()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> origIterator-&gt;getPosition(); }
<a name="l00071"></a>00071 
<a name="l00072"></a>00072   <span class="keyword">virtual</span> argument_value_t getValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> origIterator-&gt;getValue(); }
<a name="l00073"></a>00073 };
<a name="l00074"></a>00074 
<a name="l00083"></a><a class="code" href="a00520.html#gaa645dfa599e41183c494290d0abba30f">00083</a> <span class="keyword">typedef</span> <a class="code" href="a00023.html" title="This iterator takes another ConstMappingIterator and does just pipe every method to the passed ConstM...">BaseFilteredIterator&lt;ConstMappingIterator&gt;</a> <a class="code" href="a00520.html#gaa645dfa599e41183c494290d0abba30f" title="Const version of the BaseFilteredIterator. Meant to be used for ConstMappingIterator instances...">FilteredConstMappingIterator</a>;
<a name="l00084"></a>00084 
<a name="l00093"></a><a class="code" href="a00092.html">00093</a> <span class="keyword">class </span>MIXIM_API <a class="code" href="a00092.html" title="Non-Const version of the BaseFilteredIterator. Meant to be used for MappingIterator instances...">FilteredMappingIterator</a> : <span class="keyword">public</span> <a class="code" href="a00023.html" title="This iterator takes another ConstMappingIterator and does just pipe every method to the passed ConstM...">BaseFilteredIterator</a>&lt;MappingIterator&gt; {
<a name="l00094"></a>00094 <span class="keyword">public</span>:
<a name="l00095"></a>00095   <a class="code" href="a00092.html" title="Non-Const version of the BaseFilteredIterator. Meant to be used for MappingIterator instances...">FilteredMappingIterator</a>(<a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* orig):
<a name="l00096"></a>00096     <a class="code" href="a00023.html">BaseFilteredIterator&lt;MappingIterator&gt;</a>(orig) {}
<a name="l00097"></a>00097 
<a name="l00098"></a>00098   <span class="keyword">virtual</span> ~<a class="code" href="a00092.html" title="Non-Const version of the BaseFilteredIterator. Meant to be used for MappingIterator instances...">FilteredMappingIterator</a>() {}
<a name="l00099"></a>00099 
<a name="l00100"></a><a class="code" href="a00092.html#ac13e829a51e0065ab435f51af0e0eb9e">00100</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00092.html#ac13e829a51e0065ab435f51af0e0eb9e" title="Changes the value of the Mapping at the current position.">setValue</a>(argument_value_cref_t value) { origIterator-&gt;setValue(value); }
<a name="l00101"></a>00101 };
<a name="l00102"></a>00102 
<a name="l00103"></a>00103 
<a name="l00111"></a>00111 <span class="keyword">template</span>&lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>Interpolator&gt;
<a name="l00112"></a><a class="code" href="a00213.html">00112</a> <span class="keyword">class </span><a class="code" href="a00213.html" title="Provides an implementation of the MappingIterator- Interface which is able to iterate over TimeMappin...">TimeMappingIterator</a>:<span class="keyword">public</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a> {
<a name="l00113"></a>00113 <span class="keyword">protected</span>:
<a name="l00115"></a>00115   <span class="keyword">typedef</span> <a class="code" href="a00110.html" title="Represents a std::map which is able to interpolate.">InterpolateableMap&lt; Interpolator&lt; std::map&lt;simtime_t, argument_value_t&gt;</a> &gt; &gt;
<a name="l00116"></a><a class="code" href="a00213.html#a61386f0c76f3a08c1d35b46924955212">00116</a>                                                                <a class="code" href="a00213.html#a61386f0c76f3a08c1d35b46924955212" title="The templated InterpolateableMap the underlying Mapping uses std::map as storage type.">interpolator_map_type</a>;
<a name="l00117"></a>00117   <span class="keyword">typedef</span> <span class="keyword">typename</span> interpolator_map_type::interpolator_type    interpolator_type;
<a name="l00118"></a>00118   <span class="keyword">typedef</span> <span class="keyword">typename</span> interpolator_map_type::mapped_type          mapped_type;
<a name="l00119"></a>00119   <span class="keyword">typedef</span> <span class="keyword">typename</span> interpolator_map_type::iterator_intpl       iterator;
<a name="l00120"></a>00120   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00057.html" title="Template for an interpolateable const iterator for any container which maps from a key to a value...">interpolator_map_type::const_iterator_intpl</a> <a class="code" href="a00057.html" title="Template for an interpolateable const iterator for any container which maps from a key to a value...">const_iterator</a>;
<a name="l00121"></a>00121 
<a name="l00123"></a><a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a">00123</a>   iterator     <a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>;
<a name="l00124"></a>00124 
<a name="l00126"></a><a class="code" href="a00213.html#af9dbee2a6ce9ba1d26d8e2cd82c413f2">00126</a>   <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>     <a class="code" href="a00213.html#af9dbee2a6ce9ba1d26d8e2cd82c413f2" title="Stores the current position of the iterator.">position</a>;
<a name="l00127"></a>00127 
<a name="l00129"></a><a class="code" href="a00213.html#a228df0793fb7486e617aeb9ba6540863">00129</a>   <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>     <a class="code" href="a00213.html#a228df0793fb7486e617aeb9ba6540863" title="Stores the next position a call of &quot;next()&quot; would jump to.">nextPosition</a>;
<a name="l00130"></a>00130 
<a name="l00139"></a><a class="code" href="a00213.html#ac8e1d2adb44399eb29c4b0fc4f84a142">00139</a>   <span class="keywordtype">bool</span>         <a class="code" href="a00213.html#ac8e1d2adb44399eb29c4b0fc4f84a142" title="Stores if this mapping represents a step function.">isStepMapping</a>;
<a name="l00140"></a>00140 
<a name="l00141"></a>00141   <span class="keywordtype">bool</span>         atPreStep;
<a name="l00142"></a>00142 <span class="keyword">protected</span>:
<a name="l00143"></a>00143   <span class="keywordtype">void</span> updateNextPos() {
<a name="l00144"></a>00144     simtime_t t = <a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.getNextPosition();
<a name="l00145"></a>00145     <span class="keywordflow">if</span>(<a class="code" href="a00213.html#ac8e1d2adb44399eb29c4b0fc4f84a142" title="Stores if this mapping represents a step function.">isStepMapping</a> &amp;&amp; !atPreStep) {
<a name="l00146"></a>00146       t.setRaw(SIMTIME_RAW(t) - 1);
<a name="l00147"></a>00147     }
<a name="l00148"></a>00148     <a class="code" href="a00213.html#a228df0793fb7486e617aeb9ba6540863" title="Stores the next position a call of &quot;next()&quot; would jump to.">nextPosition</a>.<a class="code" href="a00013.html#a8087982f050bdc61d787b128ca9ac8f9" title="Changes the time value of this argument.">setTime</a>(t);
<a name="l00149"></a>00149   }
<a name="l00150"></a>00150 <span class="keyword">public</span>:
<a name="l00151"></a>00151 
<a name="l00155"></a><a class="code" href="a00213.html#a0bdf656d6e53fda33b555b0c100af6ff">00155</a>   <a class="code" href="a00213.html#a0bdf656d6e53fda33b555b0c100af6ff" title="Initializes the Iterator to use the passed InterpolateableMapIterator.">TimeMappingIterator</a>(<span class="keyword">const</span> iterator&amp; it)
<a name="l00156"></a>00156     : <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>()
<a name="l00157"></a>00157     , <a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>(it)
<a name="l00158"></a>00158     , <a class="code" href="a00213.html#af9dbee2a6ce9ba1d26d8e2cd82c413f2" title="Stores the current position of the iterator.">position</a>()
<a name="l00159"></a>00159     , <a class="code" href="a00213.html#a228df0793fb7486e617aeb9ba6540863" title="Stores the next position a call of &quot;next()&quot; would jump to.">nextPosition</a>()
<a name="l00160"></a>00160     , <a class="code" href="a00213.html#ac8e1d2adb44399eb29c4b0fc4f84a142" title="Stores if this mapping represents a step function.">isStepMapping</a>(it.getInterpolator().isStepping())
<a name="l00161"></a>00161     , atPreStep(false)
<a name="l00162"></a>00162   {
<a name="l00163"></a>00163     interpolator_type UsedInterpolator;
<a name="l00164"></a>00164 
<a name="l00165"></a>00165     <a class="code" href="a00213.html#ac8e1d2adb44399eb29c4b0fc4f84a142" title="Stores if this mapping represents a step function.">isStepMapping</a> = UsedInterpolator.isStepping();
<a name="l00166"></a>00166     <a class="code" href="a00213.html#af9dbee2a6ce9ba1d26d8e2cd82c413f2" title="Stores the current position of the iterator.">position</a>.<a class="code" href="a00013.html#a8087982f050bdc61d787b128ca9ac8f9" title="Changes the time value of this argument.">setTime</a>(<a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.getPosition());
<a name="l00167"></a>00167     updateNextPos();
<a name="l00168"></a>00168   }
<a name="l00169"></a>00169   <a class="code" href="a00213.html#a0bdf656d6e53fda33b555b0c100af6ff" title="Initializes the Iterator to use the passed InterpolateableMapIterator.">TimeMappingIterator</a>(<span class="keyword">const</span> <a class="code" href="a00213.html" title="Provides an implementation of the MappingIterator- Interface which is able to iterate over TimeMappin...">TimeMappingIterator&lt;Interpolator&gt;</a>&amp; o)
<a name="l00170"></a>00170     : <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>(o)
<a name="l00171"></a>00171     , <a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>(o.<a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>)
<a name="l00172"></a>00172     , <a class="code" href="a00213.html#af9dbee2a6ce9ba1d26d8e2cd82c413f2" title="Stores the current position of the iterator.">position</a>(o.<a class="code" href="a00213.html#af9dbee2a6ce9ba1d26d8e2cd82c413f2" title="Stores the current position of the iterator.">position</a>)
<a name="l00173"></a>00173     , <a class="code" href="a00213.html#a228df0793fb7486e617aeb9ba6540863" title="Stores the next position a call of &quot;next()&quot; would jump to.">nextPosition</a>(o.<a class="code" href="a00213.html#a228df0793fb7486e617aeb9ba6540863" title="Stores the next position a call of &quot;next()&quot; would jump to.">nextPosition</a>)
<a name="l00174"></a>00174     , <a class="code" href="a00213.html#ac8e1d2adb44399eb29c4b0fc4f84a142" title="Stores if this mapping represents a step function.">isStepMapping</a>(o.<a class="code" href="a00213.html#ac8e1d2adb44399eb29c4b0fc4f84a142" title="Stores if this mapping represents a step function.">isStepMapping</a>)
<a name="l00175"></a>00175     , atPreStep(o.atPreStep)
<a name="l00176"></a>00176   {}
<a name="l00177"></a>00177 
<a name="l00178"></a>00178   <span class="keyword">virtual</span> ~<a class="code" href="a00213.html" title="Provides an implementation of the MappingIterator- Interface which is able to iterate over TimeMappin...">TimeMappingIterator</a>() {}
<a name="l00179"></a>00179 
<a name="l00187"></a><a class="code" href="a00213.html#a41457ef9679298443d01dd5d29d63864">00187</a>   <span class="keywordtype">void</span> <a class="code" href="a00213.html#a41457ef9679298443d01dd5d29d63864" title="Lets the iterator point to the passed position.">jumpTo</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) {
<a name="l00188"></a>00188     atPreStep = <span class="keyword">false</span>;
<a name="l00189"></a>00189     <a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.jumpTo(pos.<a class="code" href="a00013.html#a2ecb3b041b5b8721d6767531e4ac792a" title="Returns the time value of this argument.">getTime</a>());
<a name="l00190"></a>00190     <a class="code" href="a00213.html#af9dbee2a6ce9ba1d26d8e2cd82c413f2" title="Stores the current position of the iterator.">position</a>.<a class="code" href="a00013.html#a8087982f050bdc61d787b128ca9ac8f9" title="Changes the time value of this argument.">setTime</a>(pos.<a class="code" href="a00013.html#a2ecb3b041b5b8721d6767531e4ac792a" title="Returns the time value of this argument.">getTime</a>());
<a name="l00191"></a>00191     <a class="code" href="a00213.html#a228df0793fb7486e617aeb9ba6540863" title="Stores the next position a call of &quot;next()&quot; would jump to.">nextPosition</a>.<a class="code" href="a00013.html#a8087982f050bdc61d787b128ca9ac8f9" title="Changes the time value of this argument.">setTime</a>(<a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.getNextPosition());
<a name="l00192"></a>00192   }
<a name="l00193"></a>00193 
<a name="l00205"></a><a class="code" href="a00213.html#adf215619550c90677bb8784e61813c45">00205</a>   <span class="keywordtype">void</span> <a class="code" href="a00213.html#adf215619550c90677bb8784e61813c45" title="Iterates to the specified position. This method should be used if the new position is near the curren...">iterateTo</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) {
<a name="l00206"></a>00206     atPreStep = <span class="keyword">false</span>;
<a name="l00207"></a>00207     <a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.iterateTo(pos.<a class="code" href="a00013.html#a2ecb3b041b5b8721d6767531e4ac792a" title="Returns the time value of this argument.">getTime</a>());
<a name="l00208"></a>00208     <a class="code" href="a00213.html#af9dbee2a6ce9ba1d26d8e2cd82c413f2" title="Stores the current position of the iterator.">position</a>.<a class="code" href="a00013.html#a8087982f050bdc61d787b128ca9ac8f9" title="Changes the time value of this argument.">setTime</a>(pos.<a class="code" href="a00013.html#a2ecb3b041b5b8721d6767531e4ac792a" title="Returns the time value of this argument.">getTime</a>());
<a name="l00209"></a>00209     <a class="code" href="a00213.html#a228df0793fb7486e617aeb9ba6540863" title="Stores the next position a call of &quot;next()&quot; would jump to.">nextPosition</a>.<a class="code" href="a00013.html#a8087982f050bdc61d787b128ca9ac8f9" title="Changes the time value of this argument.">setTime</a>(<a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.getNextPosition());
<a name="l00210"></a>00210   }
<a name="l00211"></a>00211 
<a name="l00220"></a><a class="code" href="a00213.html#aa12e17f8a08312b3661671c1c2b6c4ea">00220</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00213.html#aa12e17f8a08312b3661671c1c2b6c4ea" title="Iterates to the next position of the function.">next</a>() {
<a name="l00221"></a>00221     <span class="keywordflow">if</span>(<a class="code" href="a00213.html#ac8e1d2adb44399eb29c4b0fc4f84a142" title="Stores if this mapping represents a step function.">isStepMapping</a> &amp;&amp; !atPreStep){
<a name="l00222"></a>00222       <a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.iterateTo(<a class="code" href="a00213.html#a228df0793fb7486e617aeb9ba6540863" title="Stores the next position a call of &quot;next()&quot; would jump to.">nextPosition</a>.<a class="code" href="a00013.html#a2ecb3b041b5b8721d6767531e4ac792a" title="Returns the time value of this argument.">getTime</a>());
<a name="l00223"></a>00223       atPreStep = <span class="keyword">true</span>;
<a name="l00224"></a>00224     } <span class="keywordflow">else</span> {
<a name="l00225"></a>00225       <a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.next();
<a name="l00226"></a>00226       atPreStep = <span class="keyword">false</span>;
<a name="l00227"></a>00227     }
<a name="l00228"></a>00228     <a class="code" href="a00213.html#af9dbee2a6ce9ba1d26d8e2cd82c413f2" title="Stores the current position of the iterator.">position</a>.<a class="code" href="a00013.html#a8087982f050bdc61d787b128ca9ac8f9" title="Changes the time value of this argument.">setTime</a>(<a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.getPosition());
<a name="l00229"></a>00229     updateNextPos();
<a name="l00230"></a>00230   }
<a name="l00231"></a>00231 
<a name="l00241"></a><a class="code" href="a00213.html#a787c682f86d90d77fddc92f4045639b0">00241</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="a00213.html#a787c682f86d90d77fddc92f4045639b0" title="Returns true if the current position of the iterator is in range of the function.">inRange</a>()<span class="keyword"> const </span>{
<a name="l00242"></a>00242     <span class="keywordflow">return</span> <a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.inRange();
<a name="l00243"></a>00243   }
<a name="l00244"></a>00244 
<a name="l00250"></a><a class="code" href="a00213.html#ab9eb7cfe03f970af00ce999161dc8077">00250</a>   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; <a class="code" href="a00213.html#ab9eb7cfe03f970af00ce999161dc8077" title="Returns the current position of the iterator.">getPosition</a>()<span class="keyword"> const </span>{
<a name="l00251"></a>00251     <span class="keywordflow">return</span> <a class="code" href="a00213.html#af9dbee2a6ce9ba1d26d8e2cd82c413f2" title="Stores the current position of the iterator.">position</a>;
<a name="l00252"></a>00252   }
<a name="l00253"></a>00253 
<a name="l00259"></a><a class="code" href="a00213.html#a19cc52d765cc946a004c87e92ebc659a">00259</a>   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; <a class="code" href="a00213.html#a19cc52d765cc946a004c87e92ebc659a" title="Returns the next position a call to &quot;next()&quot; would jump to.">getNextPosition</a>()<span class="keyword"> const </span>{
<a name="l00260"></a>00260     <span class="keywordflow">return</span> <a class="code" href="a00213.html#a228df0793fb7486e617aeb9ba6540863" title="Stores the next position a call of &quot;next()&quot; would jump to.">nextPosition</a>;
<a name="l00261"></a>00261   }
<a name="l00262"></a>00262 
<a name="l00269"></a><a class="code" href="a00213.html#a29e9cd7dbc9096f8694739faaa3450b1">00269</a>   <span class="keyword">virtual</span> mapped_type <a class="code" href="a00213.html#a29e9cd7dbc9096f8694739faaa3450b1" title="Returns the value of the function at the current position.">getValue</a>()<span class="keyword"> const </span>{
<a name="l00270"></a>00270     <span class="keywordflow">return</span> *<a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.getValue();
<a name="l00271"></a>00271   }
<a name="l00272"></a>00272 
<a name="l00281"></a><a class="code" href="a00213.html#ac7a2b12c7ac068980d72b374d2ea4182">00281</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00213.html#ac7a2b12c7ac068980d72b374d2ea4182" title="Lets the iterator point to the begin of the mapping.">jumpToBegin</a>() {
<a name="l00282"></a>00282     <a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.jumpToBegin();
<a name="l00283"></a>00283     <a class="code" href="a00213.html#af9dbee2a6ce9ba1d26d8e2cd82c413f2" title="Stores the current position of the iterator.">position</a>.<a class="code" href="a00013.html#a8087982f050bdc61d787b128ca9ac8f9" title="Changes the time value of this argument.">setTime</a>(<a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.getPosition());
<a name="l00284"></a>00284   }
<a name="l00285"></a>00285 
<a name="l00292"></a><a class="code" href="a00213.html#abac41f2fb9ad8d503df9d8c27d3d6340">00292</a>     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="a00213.html#abac41f2fb9ad8d503df9d8c27d3d6340" title="Returns true if the iterator has a next value inside its range a call to &quot;next()&quot; can jump to...">hasNext</a>()<span class="keyword"> const </span>{
<a name="l00293"></a>00293       <span class="keywordflow">return</span> <a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.hasNext();
<a name="l00294"></a>00294     }
<a name="l00295"></a>00295 
<a name="l00302"></a><a class="code" href="a00213.html#ac4eef2a5a0b2c899e270048c86d6ec66">00302</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00213.html#ac4eef2a5a0b2c899e270048c86d6ec66" title="Changes the value of the function at the current position.">setValue</a>(argument_value_cref_t value) {
<a name="l00303"></a>00303     <a class="code" href="a00213.html#a178fa9015e993aa264bc1351b218431a" title="Stores the current position iterator inside the Mapping.">valueIt</a>.setValue(value);
<a name="l00304"></a>00304   }
<a name="l00305"></a>00305 };
<a name="l00306"></a>00306 
<a name="l00315"></a>00315 <span class="keyword">template</span>&lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>Interpolator&gt;
<a name="l00316"></a><a class="code" href="a00212.html">00316</a> <span class="keyword">class </span><a class="code" href="a00212.html" title="Implements the Mapping-interface with an InterpolateableMap from simtime_t to double between which va...">TimeMapping</a>:<span class="keyword">public</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a> {
<a name="l00317"></a>00317 <span class="keyword">protected</span>:
<a name="l00319"></a>00319   <span class="keyword">typedef</span> <a class="code" href="a00110.html" title="Represents a std::map which is able to interpolate.">InterpolateableMap&lt; Interpolator&lt; std::map&lt;simtime_t, argument_value_t&gt;</a> &gt; &gt;
<a name="l00320"></a><a class="code" href="a00212.html#a234c05b54a7bb7366b6f40598c925aeb">00320</a>                                                                <a class="code" href="a00212.html#a234c05b54a7bb7366b6f40598c925aeb" title="The templated InterpolateableMap the underlying Mapping uses std::map as storage type.">interpolator_map_type</a>;
<a name="l00321"></a>00321   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00118.html">interpolator_map_type::interpolator_type</a>    <a class="code" href="a00118.html">interpolator_type</a>;
<a name="l00322"></a>00322   <span class="keyword">typedef</span> <span class="keyword">typename</span> interpolator_map_type::mapped_type          mapped_type;
<a name="l00323"></a>00323   <span class="keyword">typedef</span> <span class="keyword">typename</span> interpolator_map_type::mapped_cref_type     mapped_cref_type;
<a name="l00324"></a>00324   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00109.html" title="Provides an interpolateable iterator for any Container which maps from keys to values which is able t...">interpolator_map_type::iterator_intpl</a>       <a class="code" href="a00109.html" title="Provides an interpolateable iterator for any Container which maps from keys to values which is able t...">iterator</a>;
<a name="l00325"></a>00325   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00057.html" title="Template for an interpolateable const iterator for any container which maps from a key to a value...">interpolator_map_type::const_iterator_intpl</a> <a class="code" href="a00057.html" title="Template for an interpolateable const iterator for any container which maps from a key to a value...">const_iterator</a>;
<a name="l00326"></a>00326 
<a name="l00328"></a><a class="code" href="a00212.html#adb0dbcc9aec3a052d85ef7e015a89148">00328</a>   <a class="code" href="a00110.html">interpolator_map_type</a> <a class="code" href="a00212.html#adb0dbcc9aec3a052d85ef7e015a89148" title="Stores the key-entries defining the function.">entries</a>;
<a name="l00329"></a>00329 <span class="keyword">public</span>:
<a name="l00330"></a>00330 
<a name="l00334"></a><a class="code" href="a00212.html#a3ca434daf1dece372ccc7421b5305720">00334</a>   <a class="code" href="a00212.html#a3ca434daf1dece372ccc7421b5305720" title="Initializes the Mapping with the passed Interpolation method.">TimeMapping</a>():
<a name="l00335"></a>00335     <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>(), <a class="code" href="a00212.html#adb0dbcc9aec3a052d85ef7e015a89148" title="Stores the key-entries defining the function.">entries</a>() {}
<a name="l00336"></a>00336   <a class="code" href="a00212.html#a3ca434daf1dece372ccc7421b5305720" title="Initializes the Mapping with the passed Interpolation method.">TimeMapping</a>(<span class="keyword">const</span> <a class="code" href="a00212.html" title="Implements the Mapping-interface with an InterpolateableMap from simtime_t to double between which va...">TimeMapping&lt;Interpolator&gt;</a>&amp; o):
<a name="l00337"></a>00337     <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>(o), <a class="code" href="a00212.html#adb0dbcc9aec3a052d85ef7e015a89148" title="Stores the key-entries defining the function.">entries</a>(o.<a class="code" href="a00212.html#adb0dbcc9aec3a052d85ef7e015a89148" title="Stores the key-entries defining the function.">entries</a>) {}
<a name="l00338"></a>00338 
<a name="l00342"></a><a class="code" href="a00212.html#a1fbcd02d2c6525dc0d89354a146e4efb">00342</a>   <a class="code" href="a00212.html#a3ca434daf1dece372ccc7421b5305720" title="Initializes the Mapping with the passed Interpolation method.">TimeMapping</a>(mapped_cref_type outOfRangeVal):
<a name="l00343"></a>00343     <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>(), <a class="code" href="a00212.html#adb0dbcc9aec3a052d85ef7e015a89148" title="Stores the key-entries defining the function.">entries</a>(outOfRangeVal) {}
<a name="l00344"></a>00344 
<a name="l00345"></a>00345   <span class="keyword">virtual</span> ~<a class="code" href="a00212.html" title="Implements the Mapping-interface with an InterpolateableMap from simtime_t to double between which va...">TimeMapping</a>() {}
<a name="l00349"></a><a class="code" href="a00212.html#a3d9bde06fb3d637992eb3e60135d96c0">00349</a>   <span class="keyword">virtual</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* <a class="code" href="a00212.html#a3d9bde06fb3d637992eb3e60135d96c0" title="returns a deep copy of this mapping instance.">clone</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00212.html" title="Implements the Mapping-interface with an InterpolateableMap from simtime_t to double between which va...">TimeMapping&lt;Interpolator&gt;</a>(*this); }
<a name="l00350"></a>00350 
<a name="l00357"></a><a class="code" href="a00212.html#a4f46930630d6c6a79b34211992840731">00357</a>   <span class="keyword">virtual</span> argument_value_t <a class="code" href="a00212.html#a4f46930630d6c6a79b34211992840731" title="Returns the value of this Function at the position specified by the passed Argument.">getValue</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos)<span class="keyword"> const </span>{
<a name="l00358"></a>00358     <span class="keywordflow">return</span> *<a class="code" href="a00212.html#adb0dbcc9aec3a052d85ef7e015a89148" title="Stores the key-entries defining the function.">entries</a>.getIntplValue(pos.<a class="code" href="a00013.html#a2ecb3b041b5b8721d6767531e4ac792a" title="Returns the time value of this argument.">getTime</a>());
<a name="l00359"></a>00359   }
<a name="l00360"></a>00360 
<a name="l00367"></a><a class="code" href="a00212.html#a453ce64062fa7afd7398735a9cf499a6">00367</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00212.html#a453ce64062fa7afd7398735a9cf499a6" title="Changes the value of the function at the specified position.">setValue</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos, argument_value_cref_t value) {
<a name="l00368"></a>00368     <a class="code" href="a00212.html#adb0dbcc9aec3a052d85ef7e015a89148" title="Stores the key-entries defining the function.">entries</a>[pos.<a class="code" href="a00013.html#a2ecb3b041b5b8721d6767531e4ac792a" title="Returns the time value of this argument.">getTime</a>()] = value;
<a name="l00369"></a>00369   }
<a name="l00370"></a>00370 
<a name="l00378"></a><a class="code" href="a00212.html#a99f25f5769ab59fd41080fedfa0dbaa5">00378</a>   <span class="keyword">virtual</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00212.html#a99f25f5769ab59fd41080fedfa0dbaa5" title="Returns a pointer of a new Iterator which is able to iterate over the function and can change the val...">createIterator</a>() {
<a name="l00379"></a>00379     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00213.html" title="Provides an implementation of the MappingIterator- Interface which is able to iterate over TimeMappin...">TimeMappingIterator&lt;Interpolator&gt;</a>(<a class="code" href="a00212.html#adb0dbcc9aec3a052d85ef7e015a89148" title="Stores the key-entries defining the function.">entries</a>.beginIntpl());
<a name="l00380"></a>00380   }
<a name="l00381"></a>00381 
<a name="l00389"></a><a class="code" href="a00212.html#a46c922604b76bf239263820a34a6ff29">00389</a>   <span class="keyword">virtual</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00212.html#a46c922604b76bf239263820a34a6ff29" title="Returns a pointer of a new Iterator which is able to iterate over the function and can change the val...">createIterator</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) {
<a name="l00390"></a>00390     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00213.html" title="Provides an implementation of the MappingIterator- Interface which is able to iterate over TimeMappin...">TimeMappingIterator&lt;Interpolator&gt;</a>(<a class="code" href="a00212.html#adb0dbcc9aec3a052d85ef7e015a89148" title="Stores the key-entries defining the function.">entries</a>.findIntpl(pos.<a class="code" href="a00013.html#a2ecb3b041b5b8721d6767531e4ac792a" title="Returns the time value of this argument.">getTime</a>()));
<a name="l00391"></a>00391   }
<a name="l00392"></a>00392 };
<a name="l00393"></a>00393 
<a name="l00394"></a>00394 
<a name="l00403"></a><a class="code" href="a00121.html">00403</a> <span class="keyword">class </span>MIXIM_API <a class="code" href="a00121.html" title="Helper-class for the MultiDimMapping which provides an Iterator which linear interpolates between two...">LinearIntplMappingIterator</a>:<span class="keyword">public</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a> {
<a name="l00404"></a>00404 <span class="keyword">protected</span>:
<a name="l00406"></a><a class="code" href="a00121.html#a45afec325d2566593b51e75ca04b3d38">00406</a>   <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* <a class="code" href="a00121.html#a45afec325d2566593b51e75ca04b3d38" title="Iterator for the left Mapping to interpolate.">leftIt</a>;
<a name="l00408"></a><a class="code" href="a00121.html#a39075af633fbfe901e92bde9d2db2fa8">00408</a>   <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* <a class="code" href="a00121.html#a39075af633fbfe901e92bde9d2db2fa8" title="Iterator for the right Mapping to interpolate.">rightIt</a>;
<a name="l00409"></a>00409 
<a name="l00412"></a><a class="code" href="a00121.html#a79eddacf96dbc6279bee80b3c915132f">00412</a>   argument_value_t      <a class="code" href="a00121.html#a79eddacf96dbc6279bee80b3c915132f" title="The factor defining how strong the left and the right Mapping affect the interpolation.">factor</a>;
<a name="l00413"></a>00413 
<a name="l00414"></a>00414 <span class="keyword">private</span>:
<a name="l00417"></a>00417   <a class="code" href="a00121.html" title="Helper-class for the MultiDimMapping which provides an Iterator which linear interpolates between two...">LinearIntplMappingIterator</a>(<span class="keyword">const</span> <a class="code" href="a00121.html" title="Helper-class for the MultiDimMapping which provides an Iterator which linear interpolates between two...">LinearIntplMappingIterator</a>&amp;);
<a name="l00420"></a>00420   <a class="code" href="a00121.html" title="Helper-class for the MultiDimMapping which provides an Iterator which linear interpolates between two...">LinearIntplMappingIterator</a>&amp; <a class="code" href="a00059.html#a7518b144224ce8cacd2f2aae17501b5f" title="ConstMappingIterator assignment operator.">operator=</a>(<span class="keyword">const</span> <a class="code" href="a00121.html" title="Helper-class for the MultiDimMapping which provides an Iterator which linear interpolates between two...">LinearIntplMappingIterator</a>&amp;);
<a name="l00421"></a>00421 
<a name="l00422"></a>00422 <span class="keyword">public</span>:
<a name="l00427"></a>00427   <a class="code" href="a00121.html" title="Helper-class for the MultiDimMapping which provides an Iterator which linear interpolates between two...">LinearIntplMappingIterator</a>(<a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* leftIt, <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* rightIt, argument_value_cref_t f);
<a name="l00428"></a>00428 
<a name="l00432"></a>00432   <span class="keyword">virtual</span> ~<a class="code" href="a00121.html" title="Helper-class for the MultiDimMapping which provides an Iterator which linear interpolates between two...">LinearIntplMappingIterator</a>();
<a name="l00433"></a>00433 
<a name="l00439"></a><a class="code" href="a00121.html#afd257e5e5a70bf27869aac0ce2de9114">00439</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="a00121.html#afd257e5e5a70bf27869aac0ce2de9114" title="An interpolated mapping isn&#39;t really iterateable over specific values, it only provides an fast way t...">hasNext</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }
<a name="l00445"></a><a class="code" href="a00121.html#a43bdceb0dade66a9d763a1a7f9e34119">00445</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="a00121.html#a43bdceb0dade66a9d763a1a7f9e34119" title="An interpolated mapping isn&#39;t really iterateable over specific values, it only provides an fast way t...">inRange</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }
<a name="l00446"></a>00446 
<a name="l00450"></a><a class="code" href="a00121.html#ac53a581da221a4467b11d731c6363ac9">00450</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00121.html#ac53a581da221a4467b11d731c6363ac9" title="This method isn&#39;t supported by an interpolated Mapping.">jumpToBegin</a>() { assert(<span class="keyword">false</span>); }
<a name="l00454"></a><a class="code" href="a00121.html#a3e091971d2bb7c505071812fce9e4376">00454</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00121.html#a3e091971d2bb7c505071812fce9e4376" title="This method isn&#39;t supported by an interpolated Mapping.">next</a>() { assert(<span class="keyword">false</span>); }
<a name="l00455"></a>00455 
<a name="l00459"></a><a class="code" href="a00121.html#a977903efca8bb9cc6c103fbb1d19f44f">00459</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00121.html#a977903efca8bb9cc6c103fbb1d19f44f" title="This method isn&#39;t supported by an interpolated Mapping.">setValue</a>(argument_value_cref_t) { assert(<span class="keyword">false</span>); }
<a name="l00460"></a>00460 
<a name="l00467"></a><a class="code" href="a00121.html#a4815486cedcd67fad5fe08d86867f527">00467</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00121.html#a4815486cedcd67fad5fe08d86867f527" title="Lets the iterator point to the passed position.">jumpTo</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos){
<a name="l00468"></a>00468     leftIt-&gt;jumpTo(pos);
<a name="l00469"></a>00469     rightIt-&gt;jumpTo(pos);
<a name="l00470"></a>00470   }
<a name="l00471"></a>00471 
<a name="l00483"></a><a class="code" href="a00121.html#aba27952eacf852f6098aa05bc7bc3c8d">00483</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00121.html#aba27952eacf852f6098aa05bc7bc3c8d" title="Increases the iterator to the passed position. This position should be near the current position of t...">iterateTo</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos){
<a name="l00484"></a>00484     leftIt-&gt;iterateTo(pos);
<a name="l00485"></a>00485     rightIt-&gt;iterateTo(pos);
<a name="l00486"></a>00486   }
<a name="l00487"></a>00487 
<a name="l00494"></a><a class="code" href="a00121.html#a431ef331baaeb739d6b7255ccca98fe2">00494</a>   <span class="keyword">virtual</span> argument_value_t <a class="code" href="a00121.html#a431ef331baaeb739d6b7255ccca98fe2" title="Returns the value of the Interpolated mapping at the current position of the iterator.">getValue</a>()<span class="keyword"> const </span>{
<a name="l00495"></a>00495     argument_value_cref_t v0 = leftIt-&gt;getValue();
<a name="l00496"></a>00496     argument_value_cref_t v1 = rightIt-&gt;getValue();
<a name="l00497"></a>00497     <span class="keywordflow">return</span> v0 + (v1 - v0) * factor;
<a name="l00498"></a>00498   }
<a name="l00499"></a>00499 
<a name="l00505"></a><a class="code" href="a00121.html#ab8aba8a0341ee7e0731da138486fae36">00505</a>   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; <a class="code" href="a00121.html#ab8aba8a0341ee7e0731da138486fae36" title="Returns the current position of the iterator.">getPosition</a>()<span class="keyword"> const </span>{
<a name="l00506"></a>00506     <span class="keywordflow">return</span> leftIt-&gt;getPosition();
<a name="l00507"></a>00507   }
<a name="l00508"></a>00508 
<a name="l00512"></a><a class="code" href="a00121.html#af0420a645633bd90a0f7775f2c6f527b">00512</a>   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; <a class="code" href="a00121.html#af0420a645633bd90a0f7775f2c6f527b" title="This method isn&#39;t supported by an interpolated mapping.">getNextPosition</a>()<span class="keyword"> const </span>{ assert(<span class="keyword">false</span>); <span class="keywordflow">return</span> *((<a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> *)NULL); }
<a name="l00513"></a>00513 };
<a name="l00514"></a>00514 
<a name="l00522"></a><a class="code" href="a00120.html">00522</a> <span class="keyword">class </span>MIXIM_API <a class="code" href="a00120.html" title="Helper class which represents a linear interpolation between two other mappings.">LinearIntplMapping</a>:<span class="keyword">public</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a> {
<a name="l00523"></a>00523 <span class="keyword">protected</span>:
<a name="l00525"></a><a class="code" href="a00120.html#afafb880ac49c9f688a51b880cd421786">00525</a>   <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* <a class="code" href="a00120.html#afafb880ac49c9f688a51b880cd421786" title="The left mapping to interpolate.">left</a>;
<a name="l00527"></a><a class="code" href="a00120.html#a4a77750e0d7b50c0c18b0b55f4d0baff">00527</a>   <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* <a class="code" href="a00120.html#a4a77750e0d7b50c0c18b0b55f4d0baff" title="The right mapping to interpolate.">right</a>;
<a name="l00528"></a>00528 
<a name="l00531"></a><a class="code" href="a00120.html#a77ebd0c5378c9b518e317578c1b4a936">00531</a>   argument_value_t    <a class="code" href="a00120.html#a77ebd0c5378c9b518e317578c1b4a936" title="The interpolation factor determining the linear interpolation between left and right mapping...">factor</a>;
<a name="l00532"></a>00532 
<a name="l00533"></a>00533 <span class="keyword">public</span>:
<a name="l00534"></a>00534   <a class="code" href="a00120.html" title="Helper class which represents a linear interpolation between two other mappings.">LinearIntplMapping</a>(<span class="keyword">const</span> <a class="code" href="a00120.html" title="Helper class which represents a linear interpolation between two other mappings.">LinearIntplMapping</a>&amp; o)
<a name="l00535"></a>00535     : <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>(o), left(o.left), right(o.right), factor(o.factor) {}
<a name="l00536"></a>00536 
<a name="l00537"></a>00537   <a class="code" href="a00120.html" title="Helper class which represents a linear interpolation between two other mappings.">LinearIntplMapping</a>&amp; <a class="code" href="a00136.html#a973f72ed384d6cead14f23d20bafee93" title="Mapping assignment operator.">operator=</a>(<span class="keyword">const</span> <a class="code" href="a00120.html" title="Helper class which represents a linear interpolation between two other mappings.">LinearIntplMapping</a>&amp; copy)
<a name="l00538"></a>00538   {
<a name="l00539"></a>00539     <a class="code" href="a00120.html" title="Helper class which represents a linear interpolation between two other mappings.">LinearIntplMapping</a> tmp(copy); <span class="comment">// All resource all allocation happens here.</span>
<a name="l00540"></a>00540                                   <span class="comment">// If this fails the copy will throw an exception</span>
<a name="l00541"></a>00541                                   <span class="comment">// and &#39;this&#39; object is unaffected by the exception.</span>
<a name="l00542"></a>00542     <a class="code" href="a00136.html#a4aaa0e0cce7a366dee7b5be53595a74f" title="Swaps data with another Mapping.">swap</a>(tmp);
<a name="l00543"></a>00543     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00544"></a>00544   }
<a name="l00545"></a>00545   <span class="comment">// swap is usually trivial to implement</span>
<a name="l00546"></a>00546   <span class="comment">// and you should easily be able to provide the no-throw guarantee.</span>
<a name="l00547"></a>00547   <span class="keywordtype">void</span> <a class="code" href="a00136.html#a4aaa0e0cce7a366dee7b5be53595a74f" title="Swaps data with another Mapping.">swap</a>(<a class="code" href="a00120.html" title="Helper class which represents a linear interpolation between two other mappings.">LinearIntplMapping</a>&amp; s)
<a name="l00548"></a>00548   {
<a name="l00549"></a>00549     <a class="code" href="a00136.html#a4aaa0e0cce7a366dee7b5be53595a74f" title="Swaps data with another Mapping.">Mapping::swap</a>(s); <span class="comment">// swap the base class members</span>
<a name="l00550"></a>00550     <span class="comment">/* Swap all D members */</span>
<a name="l00551"></a>00551     std::swap(left,   s.<a class="code" href="a00120.html#afafb880ac49c9f688a51b880cd421786" title="The left mapping to interpolate.">left</a>);
<a name="l00552"></a>00552     std::swap(right,  s.<a class="code" href="a00120.html#a4a77750e0d7b50c0c18b0b55f4d0baff" title="The right mapping to interpolate.">right</a>);
<a name="l00553"></a>00553     std::swap(factor, s.<a class="code" href="a00120.html#a77ebd0c5378c9b518e317578c1b4a936" title="The interpolation factor determining the linear interpolation between left and right mapping...">factor</a>);
<a name="l00554"></a>00554   }
<a name="l00555"></a>00555 
<a name="l00556"></a>00556 <span class="keyword">public</span>:
<a name="l00557"></a>00557 
<a name="l00562"></a><a class="code" href="a00120.html#a6cd4807affa51b25bf4dbad38b0ccc35">00562</a>   <a class="code" href="a00120.html" title="Helper class which represents a linear interpolation between two other mappings.">LinearIntplMapping</a>(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a> *<span class="keyword">const</span> left = NULL, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a> *<span class="keyword">const</span> right = NULL, argument_value_cref_t f = <a class="code" href="a00013.html#a8523627cdc70492e5e0935b9a3a78cc4" title="Zero value of a Argument value.">Argument::MappedZero</a>):
<a name="l00563"></a>00563     <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>(), left(left), right(right), factor(f) {}
<a name="l00564"></a>00564 
<a name="l00565"></a>00565   <span class="keyword">virtual</span> ~<a class="code" href="a00120.html" title="Helper class which represents a linear interpolation between two other mappings.">LinearIntplMapping</a>() {}
<a name="l00566"></a>00566 
<a name="l00570"></a><a class="code" href="a00120.html#adeef3fecfcb6b2551ee205e6e1e69166">00570</a>   <span class="keyword">virtual</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* <a class="code" href="a00120.html#adeef3fecfcb6b2551ee205e6e1e69166" title="Interpolated mappings are not supposed to be cloned!">clone</a>()<span class="keyword"> const</span>{ assert(<span class="keyword">false</span>); <span class="keywordflow">return</span> 0; }
<a name="l00571"></a>00571 
<a name="l00579"></a><a class="code" href="a00120.html#a8711b30cf4ab9148864caa503240adb4">00579</a>   <span class="keyword">virtual</span> argument_value_t <a class="code" href="a00120.html#a8711b30cf4ab9148864caa503240adb4" title="Returns the linear interpolated value of this Mapping.">getValue</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos)<span class="keyword"> const </span>{
<a name="l00580"></a>00580     assert(left);
<a name="l00581"></a>00581     assert(right);
<a name="l00582"></a>00582 
<a name="l00583"></a>00583     argument_value_cref_t v0 = left-&gt;getValue(pos);
<a name="l00584"></a>00584     argument_value_cref_t v1 = right-&gt;getValue(pos);
<a name="l00585"></a>00585     <span class="comment">//return v0 + (v1 - v0) * factor;</span>
<a name="l00586"></a>00586     <span class="keywordflow">return</span> v0 * (<a class="code" href="a00013.html#a657d962a1b965814e6b2eecb07f03e80" title="One value of a Argument value.">Argument::MappedOne</a> - factor) + v1 * factor;
<a name="l00587"></a>00587   }
<a name="l00588"></a>00588 
<a name="l00593"></a><a class="code" href="a00120.html#a3a3735ea665eb5d05d8f8d5fc29f408d">00593</a>   <span class="keyword">virtual</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00120.html#a3a3735ea665eb5d05d8f8d5fc29f408d" title="An interpolated mapping doesn&#39;t have a valid &quot;first&quot;-entry, so this method is not supported...">createIterator</a>() {
<a name="l00594"></a>00594     assert(<span class="keyword">false</span>);
<a name="l00595"></a>00595     <span class="keywordflow">return</span> 0;
<a name="l00596"></a>00596   }
<a name="l00597"></a>00597 
<a name="l00606"></a><a class="code" href="a00120.html#ad0da987f0b7bd22db5a18ca2558533a4">00606</a>   <span class="keyword">virtual</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00120.html#ad0da987f0b7bd22db5a18ca2558533a4" title="Creates an iterator for this mapping starting at the passed position.">createIterator</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) {
<a name="l00607"></a>00607     assert(left);
<a name="l00608"></a>00608     assert(right);
<a name="l00609"></a>00609 
<a name="l00610"></a>00610     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00121.html" title="Helper-class for the MultiDimMapping which provides an Iterator which linear interpolates between two...">LinearIntplMappingIterator</a>(left-&gt;createConstIterator(pos), right-&gt;createConstIterator(pos), factor);
<a name="l00611"></a>00611   }
<a name="l00612"></a>00612 
<a name="l00616"></a><a class="code" href="a00120.html#a8da77310505c9367e0b687f5e9934555">00616</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00120.html#a8da77310505c9367e0b687f5e9934555" title="This method is not supported!">setValue</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp;, argument_value_cref_t) { assert(<span class="keyword">false</span>); }
<a name="l00617"></a>00617 };
<a name="l00618"></a>00618 
<a name="l00630"></a>00630 <span class="keyword">template</span>&lt;&gt;
<a name="l00631"></a><a class="code" href="a00112.html">00631</a> <span class="keyword">class </span><a class="code" href="a00111.html" title="Represents an interpolated value of any type.">Interpolated</a>&lt;<a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>*&gt; {
<a name="l00632"></a>00632 <span class="keyword">protected</span>:
<a name="l00633"></a>00633   <span class="keyword">typedef</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>*                 <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">value_type</a>;
<a name="l00634"></a>00634   <span class="keyword">typedef</span> <span class="keyword">const</span> value_type&amp;        <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">value_cref_type</a>;
<a name="l00635"></a>00635   <span class="keyword">typedef</span> value_type&amp;              <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">value_ref_type</a>;
<a name="l00636"></a>00636   <span class="keyword">typedef</span> value_type*              <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">value_ptr_type</a>;
<a name="l00637"></a>00637   <span class="keyword">typedef</span> <a class="code" href="a00111.html" title="Represents an interpolated value of any type.">Interpolated&lt;value_type&gt;</a> <a class="code" href="a00111.html" title="Represents an interpolated value of any type.">_Self</a>;
<a name="l00638"></a>00638 
<a name="l00640"></a><a class="code" href="a00112.html#a41f35d1266c83a26a22d6d0b411ec34f">00640</a>   <a class="code" href="a00120.html" title="Helper class which represents a linear interpolation between two other mappings.">LinearIntplMapping</a> <a class="code" href="a00112.html#a41f35d1266c83a26a22d6d0b411ec34f" title="Holds the temporary InterpolatedMapping if necessary.">mapping</a>;
<a name="l00641"></a>00641 
<a name="l00643"></a><a class="code" href="a00112.html#a35663ec8d3ab796e7ad7b20a2526bebd">00643</a>   value_type <a class="code" href="a00112.html#a35663ec8d3ab796e7ad7b20a2526bebd" title="A pointer to the Mapping this class represents.">value</a>;
<a name="l00644"></a>00644 
<a name="l00646"></a><a class="code" href="a00112.html#a34000edebc6bbcca908e4cf61f0256d1">00646</a>   <span class="keywordtype">bool</span>       <a class="code" href="a00112.html#a34000edebc6bbcca908e4cf61f0256d1" title="Stores if we use the temporary IntplMapping or a external pointer.">isPointer</a>;
<a name="l00647"></a>00647 <span class="keyword">public</span>:
<a name="l00649"></a><a class="code" href="a00112.html#a5f5b0e3a8adb3c2ec8b4178476334cdd">00649</a>   <span class="keywordtype">bool</span>       <a class="code" href="a00112.html#a5f5b0e3a8adb3c2ec8b4178476334cdd" title="Stores if the underlying Mapping is interpolated or not.">isInterpolated</a>;
<a name="l00650"></a>00650 
<a name="l00651"></a>00651 <span class="keyword">public</span>:
<a name="l00657"></a><a class="code" href="a00112.html#ae6dbef7dabca0ce3f6f3110b28b48c8e">00657</a>   <a class="code" href="a00111.html" title="Represents an interpolated value of any type.">Interpolated</a>(<span class="keyword">const</span> <a class="code" href="a00120.html" title="Helper class which represents a linear interpolation between two other mappings.">LinearIntplMapping</a>&amp; m):
<a name="l00658"></a>00658     mapping(m), value(), isPointer(false), isInterpolated(true) {
<a name="l00659"></a>00659 
<a name="l00660"></a>00660     value = &amp;mapping;
<a name="l00661"></a>00661   }
<a name="l00662"></a>00662 
<a name="l00669"></a><a class="code" href="a00112.html#a95f58fb7ed93ec9a752d2d85581796a1">00669</a>   <a class="code" href="a00111.html" title="Represents an interpolated value of any type.">Interpolated</a>(value_type v, <span class="keywordtype">bool</span> isIntpl = <span class="keyword">true</span>):
<a name="l00670"></a>00670     mapping(), value(v), isPointer(true), isInterpolated(isIntpl) {}
<a name="l00671"></a>00671 
<a name="l00675"></a><a class="code" href="a00112.html#aefb556e3f085b774951f2afc22d9279f">00675</a>   <a class="code" href="a00111.html" title="Represents an interpolated value of any type.">Interpolated</a>(<span class="keyword">const</span> _Self&amp; o):
<a name="l00676"></a>00676     mapping(), value(o.value), isPointer(o.isPointer), isInterpolated(o.isInterpolated) {
<a name="l00677"></a>00677     <span class="keywordflow">if</span>(!isPointer) {
<a name="l00678"></a>00678       mapping = o.mapping;
<a name="l00679"></a>00679       value = &amp;mapping;
<a name="l00680"></a>00680     }
<a name="l00681"></a>00681   }
<a name="l00682"></a>00682 
<a name="l00683"></a>00683   ~<a class="code" href="a00111.html" title="Represents an interpolated value of any type.">Interpolated</a>() {}
<a name="l00684"></a>00684 
<a name="l00689"></a><a class="code" href="a00112.html#a2810500c1b795c29a1af2741024853a7">00689</a>   <span class="keyword">const</span> _Self&amp; <a class="code" href="a00112.html#a2810500c1b795c29a1af2741024853a7" title="Assignment operator which assures that the internal storage is copied correctly.">operator=</a>(<span class="keyword">const</span> _Self&amp; o){
<a name="l00690"></a>00690     isInterpolated = o.<a class="code" href="a00111.html#a6b2dcc90823cd33ba7e61f68521bc8c0" title="Stores if the underlying value is interpolated or not.">isInterpolated</a>;
<a name="l00691"></a>00691     isPointer      = o.isPointer;
<a name="l00692"></a>00692     value          = o.<a class="code" href="a00111.html#a767a013b8c29f231984ac735b4b59955" title="A value this class represents.">value</a>;
<a name="l00693"></a>00693     <span class="keywordflow">if</span>(!isPointer) {
<a name="l00694"></a>00694       mapping = o.mapping;
<a name="l00695"></a>00695       value   = &amp;mapping;
<a name="l00696"></a>00696     }
<a name="l00697"></a>00697     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00698"></a>00698   }
<a name="l00699"></a>00699 
<a name="l00704"></a><a class="code" href="a00112.html#a2e84fa1860da47f333628f4cab75c376">00704</a>   value_ref_type <a class="code" href="a00112.html#a2e84fa1860da47f333628f4cab75c376" title="Dereferences this Interpolated to the represented value (works like dereferencing an std::iterator)...">operator*</a>() {
<a name="l00705"></a>00705     <span class="keywordflow">return</span> <a class="code" href="a00111.html#a767a013b8c29f231984ac735b4b59955" title="A value this class represents.">value</a>;
<a name="l00706"></a>00706   }
<a name="l00707"></a>00707 
<a name="l00712"></a><a class="code" href="a00112.html#a4e9ca385dff76dca305c1d17c6a77f85">00712</a>   value_ptr_type <a class="code" href="a00112.html#a4e9ca385dff76dca305c1d17c6a77f85" title="Dereferences this Interpolated to the represented value (works like dereferencing an std::iterator)...">operator-&gt;</a>() {
<a name="l00713"></a>00713     <span class="keywordflow">return</span> &amp;<a class="code" href="a00111.html#a767a013b8c29f231984ac735b4b59955" title="A value this class represents.">value</a>;
<a name="l00714"></a>00714   }
<a name="l00715"></a>00715 
<a name="l00721"></a><a class="code" href="a00112.html#a2616d18d714a3b3ccc5797411d0f06de">00721</a>   <span class="keywordtype">bool</span> <a class="code" href="a00112.html#a2616d18d714a3b3ccc5797411d0f06de" title="Two Interpolated&lt;Mapping*&gt; are compared equal if the pointer to the represented Mapping is the same a...">operator==</a>(<span class="keyword">const</span> _Self&amp; other)<span class="keyword"> const </span>{
<a name="l00722"></a>00722     <span class="keywordflow">return</span> value == other.<a class="code" href="a00111.html#a767a013b8c29f231984ac735b4b59955" title="A value this class represents.">value</a> &amp;&amp; isInterpolated == other.<a class="code" href="a00111.html#a6b2dcc90823cd33ba7e61f68521bc8c0" title="Stores if the underlying value is interpolated or not.">isInterpolated</a>;
<a name="l00723"></a>00723   }
<a name="l00724"></a>00724 
<a name="l00730"></a><a class="code" href="a00112.html#adc94213dd6549deee2a8c5b8b41a0403">00730</a>   <span class="keywordtype">bool</span> <a class="code" href="a00112.html#adc94213dd6549deee2a8c5b8b41a0403" title="Two Interpolated&lt;Mapping*&gt; are compared non equal if the pointer to the represented Mapping differs o...">operator!=</a>(<span class="keyword">const</span> _Self&amp; other)<span class="keyword"> const </span>{
<a name="l00731"></a>00731     <span class="keywordflow">return</span> value != other.<a class="code" href="a00111.html#a767a013b8c29f231984ac735b4b59955" title="A value this class represents.">value</a> || isInterpolated != other.<a class="code" href="a00111.html#a6b2dcc90823cd33ba7e61f68521bc8c0" title="Stores if the underlying value is interpolated or not.">isInterpolated</a>;
<a name="l00732"></a>00732   }
<a name="l00733"></a>00733 };
<a name="l00734"></a>00734 
<a name="l00742"></a>00742 <span class="keyword">template</span>&lt;&gt;
<a name="l00743"></a><a class="code" href="a00119.html">00743</a> <span class="keyword">class </span><a class="code" href="a00118.html" title="Given two iterators defining a range of key-value-pairs this class provides linear interpolation of t...">Linear</a>&lt; std::map&lt;Argument::mapped_type, Mapping*&gt; &gt; : <span class="keyword">public</span> <a class="code" href="a00113.html">InterpolatorBase</a>&lt; std::map&lt;Argument::mapped_type, Mapping*&gt; &gt;  {
<a name="l00744"></a>00744 <span class="keyword">protected</span>:
<a name="l00745"></a>00745   <span class="keyword">typedef</span> <a class="code" href="a00113.html">InterpolatorBase&lt; std::map&lt;Argument::mapped_type, Mapping*&gt;</a> &gt; <a class="code" href="a00113.html">base_class_type</a>;
<a name="l00746"></a>00746   <span class="keyword">typedef</span> <a class="code" href="a00118.html" title="Given two iterators defining a range of key-value-pairs this class provides linear interpolation of t...">Linear&lt; std::map&lt;Argument::mapped_type, Mapping*&gt;</a> &gt;           <a class="code" href="a00119.html" title="Specialization of the Linear-template which provides LinearInterpolation for pointer two Mappings...">_Self</a>;
<a name="l00747"></a>00747 
<a name="l00748"></a>00748 <span class="keyword">public</span>:
<a name="l00749"></a>00749   <span class="keyword">typedef</span> base_class_type::storage_type     storage_type;
<a name="l00750"></a>00750   <span class="keyword">typedef</span> base_class_type::container_type   container_type;
<a name="l00751"></a>00751   <span class="keyword">typedef</span> base_class_type::key_type         key_type;
<a name="l00752"></a>00752   <span class="keyword">typedef</span> base_class_type::key_cref_type    key_cref_type;
<a name="l00753"></a>00753   <span class="keyword">typedef</span> base_class_type::mapped_type      mapped_type;
<a name="l00754"></a>00754   <span class="keyword">typedef</span> base_class_type::mapped_cref_type mapped_cref_type;
<a name="l00755"></a>00755   <span class="keyword">typedef</span> base_class_type::pair_type        pair_type;
<a name="l00756"></a>00756   <span class="keyword">typedef</span> base_class_type::iterator         iterator;
<a name="l00757"></a>00757   <span class="keyword">typedef</span> base_class_type::const_iterator   const_iterator;
<a name="l00758"></a>00758   <span class="keyword">typedef</span> <a class="code" href="a00169.html">base_class_type::comparator_type</a>  <a class="code" href="a00169.html">comparator_type</a>;
<a name="l00759"></a>00759   <span class="keyword">typedef</span> <a class="code" href="a00111.html">base_class_type::interpolated</a>     <a class="code" href="a00111.html">interpolated</a>;
<a name="l00760"></a>00760 
<a name="l00761"></a>00761 <span class="keyword">public</span>:
<a name="l00762"></a>00762   <a class="code" href="a00118.html" title="Given two iterators defining a range of key-value-pairs this class provides linear interpolation of t...">Linear</a>():
<a name="l00763"></a>00763     <a class="code" href="a00113.html">base_class_type</a>() {}
<a name="l00764"></a>00764 
<a name="l00765"></a>00765   <a class="code" href="a00118.html" title="Given two iterators defining a range of key-value-pairs this class provides linear interpolation of t...">Linear</a>(mapped_cref_type oorv):
<a name="l00766"></a>00766     <a class="code" href="a00113.html">base_class_type</a>(oorv) {}
<a name="l00767"></a>00767 
<a name="l00768"></a>00768   <a class="code" href="a00118.html" title="Given two iterators defining a range of key-value-pairs this class provides linear interpolation of t...">Linear</a>(<span class="keyword">const</span> <a class="code" href="a00119.html" title="Specialization of the Linear-template which provides LinearInterpolation for pointer two Mappings...">_Self</a>&amp; o):
<a name="l00769"></a>00769     <a class="code" href="a00113.html">base_class_type</a>(o) {}
<a name="l00770"></a>00770 
<a name="l00771"></a>00771   <span class="keyword">virtual</span> ~<a class="code" href="a00118.html" title="Given two iterators defining a range of key-value-pairs this class provides linear interpolation of t...">Linear</a>() {}
<a name="l00772"></a>00772 
<a name="l00787"></a>00787   <span class="keyword">virtual</span>
<a name="l00788"></a><a class="code" href="a00119.html#ae9b11d23c7aa15f1f4f182caa81ce74b">00788</a>   <a class="code" href="a00111.html">interpolated</a> <a class="code" href="a00118.html#a1927a59614f2880683c9ee3795ab59fd" title="Functor operator of this class which linear interpolates the value at the passed position using the v...">operator()</a>(<span class="keyword">const</span> const_iterator&amp;  first,
<a name="l00789"></a>00789                           <span class="keyword">const</span> const_iterator&amp;  last,
<a name="l00790"></a>00790                           key_cref_type          pos,
<a name="l00791"></a>00791                           const_iterator         upperBound)<span class="keyword"> const</span>{
<a name="l00792"></a>00792     <span class="keywordflow">if</span>(first == last) {
<a name="l00793"></a>00793       <span class="keywordflow">return</span> base_class_type::outOfRangeVal;
<a name="l00794"></a>00794     }
<a name="l00795"></a>00795     <span class="keywordflow">if</span>(upperBound == first){
<a name="l00796"></a>00796       <span class="keywordflow">return</span> asInterpolated(upperBound-&gt;second, <span class="keyword">true</span>);
<a name="l00797"></a>00797     }
<a name="l00798"></a>00798 
<a name="l00799"></a>00799     const_iterator right = upperBound;
<a name="l00800"></a>00800     const_iterator left  = --upperBound;
<a name="l00801"></a>00801 
<a name="l00802"></a>00802     <span class="keywordflow">if</span>(left-&gt;first == pos)
<a name="l00803"></a>00803       <span class="keywordflow">return</span> asInterpolated(left-&gt;second, <span class="keyword">false</span>, <span class="keyword">false</span>);
<a name="l00804"></a>00804 
<a name="l00805"></a>00805     <span class="keywordflow">if</span>(right == last){
<a name="l00806"></a>00806       <span class="keywordflow">return</span> asInterpolated(left-&gt;second, <span class="keyword">true</span>);
<a name="l00807"></a>00807     }
<a name="l00808"></a>00808 
<a name="l00809"></a>00809     <span class="keywordflow">return</span> <a class="code" href="a00111.html">interpolated</a>(<a class="code" href="a00120.html" title="Helper class which represents a linear interpolation between two other mappings.">LinearIntplMapping</a>(left-&gt;second, right-&gt;second, <a class="code" href="a00118.html#a6bc0698641121198130b488f54692c3f" title="Calculates the linear interpolation factor used for the interpolation.">linearInterpolationFactor</a>(pos, left-&gt;first, right-&gt;first)));
<a name="l00810"></a>00810   }
<a name="l00811"></a>00811 
<a name="l00812"></a>00812 <span class="keyword">protected</span>:
<a name="l00817"></a><a class="code" href="a00119.html#aab6548d5edb2e331e905f569d0e6cf0a">00817</a>   <span class="keyword">static</span> ConstMapping::argument_value_t <a class="code" href="a00119.html#aab6548d5edb2e331e905f569d0e6cf0a" title="calculates the linear interpolation factor used for the created LinearIntplMappings.">linearInterpolationFactor</a>(key_cref_type t, key_cref_type t0, key_cref_type t1){
<a name="l00818"></a>00818     assert( (t0 &lt;= t &amp;&amp; t &lt;= t1) || (t0 &gt;= t &amp;&amp; t &gt;= t1) );
<a name="l00819"></a>00819     <span class="keywordflow">if</span> (t0 == t1) {
<a name="l00820"></a>00820       <span class="keywordflow">return</span> 0;
<a name="l00821"></a>00821     }
<a name="l00822"></a>00822     <span class="keywordflow">return</span> cast_it&lt;ConstMapping::argument_value_t&gt;( (t - t0) / (t1 - t0) );
<a name="l00823"></a>00823   }
<a name="l00824"></a>00824 };
<a name="l00825"></a>00825 
<a name="l00834"></a><a class="code" href="a00055.html">00834</a> <span class="keyword">class </span>MIXIM_API <a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a> : <span class="keyword">public</span> <a class="code" href="a00194.html" title="Abstract subclass of ConstMapping which can be used as base for any ConstMapping implementation with ...">SimpleConstMapping</a> {
<a name="l00835"></a>00835 <span class="keyword">protected</span>:
<a name="l00836"></a>00836   argument_value_t value;
<a name="l00837"></a>00837 
<a name="l00838"></a>00838 <span class="keyword">public</span>:
<a name="l00839"></a>00839   <a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a>(<span class="keyword">const</span> <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>&amp; dims, argument_value_cref_t val):
<a name="l00840"></a>00840     <a class="code" href="a00194.html#a0794f7d9a8afe0dc17232211eb451302" title="Initializes a not yet iterateable SimpleConstmapping with the passed DimensionSet as domain...">SimpleConstMapping</a>(dims), value(val) {}
<a name="l00841"></a>00841 
<a name="l00842"></a>00842   <a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a>(<span class="keyword">const</span> <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>&amp;   dims,
<a name="l00843"></a>00843                  <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp;       key,
<a name="l00844"></a>00844                  argument_value_cref_t val):
<a name="l00845"></a>00845     <a class="code" href="a00194.html#a0794f7d9a8afe0dc17232211eb451302" title="Initializes a not yet iterateable SimpleConstmapping with the passed DimensionSet as domain...">SimpleConstMapping</a>(dims, key), value(val) {}
<a name="l00846"></a>00846 
<a name="l00847"></a>00847   <a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a>(<span class="keyword">const</span> <a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a>&amp; o):
<a name="l00848"></a>00848     <a class="code" href="a00194.html#a0794f7d9a8afe0dc17232211eb451302" title="Initializes a not yet iterateable SimpleConstmapping with the passed DimensionSet as domain...">SimpleConstMapping</a>(o), value(o.value) {}
<a name="l00849"></a>00849 
<a name="l00850"></a>00850   <span class="keyword">virtual</span> ~<a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a>() {}
<a name="l00851"></a>00851 
<a name="l00852"></a><a class="code" href="a00055.html#a64ad8ca116f9a3f0ea575954f43a6706">00852</a>   <span class="keyword">virtual</span> argument_value_t <a class="code" href="a00055.html#a64ad8ca116f9a3f0ea575954f43a6706" title="Returns the value of the mapping at the passed position.">getValue</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp;)<span class="keyword"> const </span>{
<a name="l00853"></a>00853     <span class="keywordflow">return</span> value;
<a name="l00854"></a>00854   }
<a name="l00855"></a>00855 
<a name="l00859"></a><a class="code" href="a00055.html#a3ef566da7c09d971a3f26689083056bc">00859</a>   argument_value_cref_t <a class="code" href="a00055.html#a3ef566da7c09d971a3f26689083056bc" title="Returns the value of this constant mapping.">getValue</a>()<span class="keyword"> const </span>{
<a name="l00860"></a>00860     <span class="keywordflow">return</span> value;
<a name="l00861"></a>00861   }
<a name="l00862"></a>00862 
<a name="l00866"></a><a class="code" href="a00055.html#a63d0eab4f014a7d8094544c0dca5d7f7">00866</a>   <span class="keywordtype">void</span> <a class="code" href="a00055.html#a63d0eab4f014a7d8094544c0dca5d7f7" title="Sets the value of this constant mapping.">setValue</a>(argument_value_cref_t val) { value = val; }
<a name="l00867"></a>00867 
<a name="l00868"></a><a class="code" href="a00055.html#a63f15a3fb6da788dbaaeb8b1ee5470f2">00868</a>   <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* <a class="code" href="a00055.html#a63f15a3fb6da788dbaaeb8b1ee5470f2" title="creates a clone of this mapping.">constClone</a>()<span class="keyword"> const  </span>{
<a name="l00869"></a>00869     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a>(dimensions, value);
<a name="l00870"></a>00870   }
<a name="l00871"></a>00871 };
<a name="l00872"></a>00872 
<a name="l00883"></a><a class="code" href="a00060.html">00883</a> <span class="keyword">class </span>MIXIM_API <a class="code" href="a00060.html" title="Wraps an ConstMappingIterator into a MappingIterator interface.">ConstMappingIteratorWrapper</a> : <span class="keyword">public</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a> {
<a name="l00884"></a>00884 <span class="keyword">protected</span>:
<a name="l00885"></a>00885   <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a> *<span class="keyword">const</span> iterator;
<a name="l00886"></a>00886 <span class="keyword">private</span>:
<a name="l00889"></a>00889   <a class="code" href="a00060.html" title="Wraps an ConstMappingIterator into a MappingIterator interface.">ConstMappingIteratorWrapper</a>(<span class="keyword">const</span> <a class="code" href="a00060.html" title="Wraps an ConstMappingIterator into a MappingIterator interface.">ConstMappingIteratorWrapper</a>&amp;);
<a name="l00892"></a>00892   <a class="code" href="a00060.html" title="Wraps an ConstMappingIterator into a MappingIterator interface.">ConstMappingIteratorWrapper</a>&amp; <a class="code" href="a00059.html#a7518b144224ce8cacd2f2aae17501b5f" title="ConstMappingIterator assignment operator.">operator=</a>(<span class="keyword">const</span> <a class="code" href="a00060.html" title="Wraps an ConstMappingIterator into a MappingIterator interface.">ConstMappingIteratorWrapper</a>&amp;);
<a name="l00893"></a>00893 
<a name="l00894"></a>00894 <span class="keyword">public</span>:
<a name="l00895"></a>00895   <a class="code" href="a00060.html" title="Wraps an ConstMappingIterator into a MappingIterator interface.">ConstMappingIteratorWrapper</a>(<a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* it):
<a name="l00896"></a>00896     <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>(), iterator(it) {}
<a name="l00897"></a>00897 
<a name="l00898"></a>00898   <span class="keyword">virtual</span> ~<a class="code" href="a00060.html" title="Wraps an ConstMappingIterator into a MappingIterator interface.">ConstMappingIteratorWrapper</a>() {
<a name="l00899"></a>00899     <span class="keywordflow">if</span>(iterator)
<a name="l00900"></a>00900       <span class="keyword">delete</span> iterator;
<a name="l00901"></a>00901   }
<a name="l00902"></a>00902 
<a name="l00903"></a><a class="code" href="a00060.html#a21f0afa0d6ffa165911fe5a19cfd032c">00903</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00060.html#a21f0afa0d6ffa165911fe5a19cfd032c" title="Changes the value of the Mapping at the current position.">setValue</a>(argument_value_cref_t) { assert(<span class="keyword">false</span>); }
<a name="l00904"></a>00904 
<a name="l00905"></a><a class="code" href="a00060.html#a603cbcad1aa33945132a3b8e2cfb769e">00905</a>   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; <a class="code" href="a00060.html#a603cbcad1aa33945132a3b8e2cfb769e" title="Returns the position the next call to &quot;next()&quot; of this Iterator would iterate to.">getNextPosition</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> iterator-&gt;getNextPosition(); }
<a name="l00906"></a>00906 
<a name="l00907"></a><a class="code" href="a00060.html#a4864dc39a40cada6f4abde4fc6eea3b7">00907</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00060.html#a4864dc39a40cada6f4abde4fc6eea3b7" title="Lets the iterator point to the passed position.">jumpTo</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) { iterator-&gt;jumpTo(pos); }
<a name="l00908"></a>00908 
<a name="l00909"></a><a class="code" href="a00060.html#a6e3de2e2477083e963498675ed8b78b9">00909</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00060.html#a6e3de2e2477083e963498675ed8b78b9" title="Lets the iterator point to the begin of the mapping.">jumpToBegin</a>() { iterator-&gt;jumpToBegin(); }
<a name="l00910"></a>00910 
<a name="l00911"></a><a class="code" href="a00060.html#ab96b7f5eca4759cdeaad879512340b93">00911</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00060.html#ab96b7f5eca4759cdeaad879512340b93" title="Iterates to the specified position. This method should be used if the new position is near the curren...">iterateTo</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) { iterator-&gt;iterateTo(pos); }
<a name="l00912"></a>00912 
<a name="l00913"></a><a class="code" href="a00060.html#a01e885f408515be1170ce8af57de217b">00913</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00060.html#a01e885f408515be1170ce8af57de217b" title="Iterates to the next position of the Mapping.">next</a>() { iterator-&gt;next(); }
<a name="l00914"></a>00914 
<a name="l00915"></a><a class="code" href="a00060.html#a4a4bb9cfd56c7013bf5bd4347fef3293">00915</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="a00060.html#a4a4bb9cfd56c7013bf5bd4347fef3293" title="Returns true if the current position of the iterator is in range of the function.">inRange</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> iterator-&gt;inRange(); }
<a name="l00916"></a>00916 
<a name="l00917"></a><a class="code" href="a00060.html#ab60f4f00ba7175122fe6afef43b7cfbc">00917</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="a00060.html#ab60f4f00ba7175122fe6afef43b7cfbc" title="Returns true if the iterator has a next value it can iterate to on a call to &quot;next()&quot;.">hasNext</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> iterator-&gt;hasNext(); }
<a name="l00918"></a>00918 
<a name="l00919"></a><a class="code" href="a00060.html#aed031f6f66b8c703523fc41b0a7c2107">00919</a>   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; <a class="code" href="a00060.html#aed031f6f66b8c703523fc41b0a7c2107" title="Returns the current position of the iterator.">getPosition</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> iterator-&gt;getPosition(); }
<a name="l00920"></a>00920 
<a name="l00921"></a><a class="code" href="a00060.html#a755c87e1eb464724fcc9e5908d25cfac">00921</a>   <span class="keyword">virtual</span> argument_value_t <a class="code" href="a00060.html#a755c87e1eb464724fcc9e5908d25cfac" title="Returns the value of the Mapping at the current position.">getValue</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> iterator-&gt;getValue(); }
<a name="l00922"></a>00922 };
<a name="l00923"></a>00923 
<a name="l00933"></a><a class="code" href="a00061.html">00933</a> <span class="keyword">class </span>MIXIM_API <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a> : <span class="keyword">public</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a> {
<a name="l00934"></a>00934 <span class="keyword">protected</span>:
<a name="l00935"></a>00935   <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* mapping;
<a name="l00936"></a>00936 
<a name="l00937"></a>00937 <span class="keyword">private</span>:
<a name="l00940"></a>00940   <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>&amp; <a class="code" href="a00136.html#a973f72ed384d6cead14f23d20bafee93" title="Mapping assignment operator.">operator=</a>(<span class="keyword">const</span> <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>&amp;);
<a name="l00941"></a>00941 
<a name="l00942"></a>00942 <span class="keyword">public</span>:
<a name="l00943"></a>00943   <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* m):
<a name="l00944"></a>00944     <a class="code" href="a00136.html#a4d721f5e319fdcf56b4285d1368795d1" title="Initializes the Mapping with the time dimension as domain.">Mapping</a>(m-&gt;<a class="code" href="a00058.html#acc1559cf5741bec3aa6422e94c5b9cce" title="Returns this Mappings domain as DimensionSet.">getDimensionSet</a>()), mapping(m) {}
<a name="l00945"></a>00945   <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>(<span class="keyword">const</span> <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>&amp; o):
<a name="l00946"></a>00946     <a class="code" href="a00136.html#a4d721f5e319fdcf56b4285d1368795d1" title="Initializes the Mapping with the time dimension as domain.">Mapping</a>(o), mapping(o.mapping) {}
<a name="l00947"></a>00947 
<a name="l00948"></a>00948   <span class="keyword">virtual</span> ~<a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>() {}
<a name="l00949"></a>00949 
<a name="l00950"></a><a class="code" href="a00061.html#ae546ec9047dae116ef51b5919cf4621a">00950</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00061.html#ae546ec9047dae116ef51b5919cf4621a" title="Changes the value of the Mapping at the specified position.">setValue</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp;, argument_value_cref_t) { assert(<span class="keyword">false</span>); }
<a name="l00951"></a>00951 
<a name="l00952"></a><a class="code" href="a00061.html#ab5c7771bd13f8cdb93f5dce837fdffa1">00952</a>   <span class="keyword">virtual</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00061.html#ab5c7771bd13f8cdb93f5dce837fdffa1" title="Returns a pointer of a new Iterator which is able to iterate over the Mapping and can change it...">createIterator</a>() {
<a name="l00953"></a>00953     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00060.html" title="Wraps an ConstMappingIterator into a MappingIterator interface.">ConstMappingIteratorWrapper</a>(mapping-&gt;createConstIterator());
<a name="l00954"></a>00954   }
<a name="l00955"></a>00955 
<a name="l00956"></a><a class="code" href="a00061.html#ab6de270ec2325131f99174860f396025">00956</a>   <span class="keyword">virtual</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00061.html#ab6de270ec2325131f99174860f396025" title="Returns a pointer of a new Iterator which is able to iterate over the function and can change it...">createIterator</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) {
<a name="l00957"></a>00957     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00060.html" title="Wraps an ConstMappingIterator into a MappingIterator interface.">ConstMappingIteratorWrapper</a>(mapping-&gt;createConstIterator(pos));
<a name="l00958"></a>00958   }
<a name="l00959"></a>00959 
<a name="l00960"></a><a class="code" href="a00061.html#a6706d0676194d24aa60059d93c8cbc44">00960</a>   <span class="keyword">virtual</span> argument_value_t <a class="code" href="a00061.html#a6706d0676194d24aa60059d93c8cbc44" title="Returns the value of this Mapping at the position specified by the passed Argument.">getValue</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mapping-&gt;getValue(pos); }
<a name="l00961"></a>00961 
<a name="l00962"></a><a class="code" href="a00061.html#a6a2c09d666b9e986798d0be48add4cdd">00962</a>   <span class="keyword">virtual</span> <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* <a class="code" href="a00061.html#a6a2c09d666b9e986798d0be48add4cdd" title="Returns an ConstMappingIterator by use of the respective implementation of the &quot;createIterator()&quot;-met...">createConstIterator</a>()<span class="keyword"> const </span>{
<a name="l00963"></a>00963     <span class="keywordflow">return</span> mapping-&gt;createConstIterator();
<a name="l00964"></a>00964   }
<a name="l00965"></a>00965 
<a name="l00966"></a><a class="code" href="a00061.html#a648971050f302ee9afd31ebd51d54698">00966</a>   <span class="keyword">virtual</span> <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* <a class="code" href="a00061.html#a648971050f302ee9afd31ebd51d54698" title="Returns an ConstMappingIterator by use of the respective implementation of the &quot;createIterator()&quot;-met...">createConstIterator</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos)<span class="keyword"> const </span>{
<a name="l00967"></a>00967     <span class="keywordflow">return</span> mapping-&gt;createConstIterator(pos);
<a name="l00968"></a>00968   }
<a name="l00969"></a>00969 
<a name="l00970"></a><a class="code" href="a00061.html#a5290d7c6126897a26e810da626d115ec">00970</a>   <span class="keyword">virtual</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* <a class="code" href="a00061.html#a5290d7c6126897a26e810da626d115ec" title="Returns a deep const copy of this mapping by using the according &quot;clone()&quot;-implementation.">constClone</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mapping-&gt;<a class="code" href="a00058.html#a741e083fb18412a3d9cde7eac3dced10" title="returns a deep copy of this mapping instance.">constClone</a>(); }
<a name="l00971"></a>00971 
<a name="l00972"></a><a class="code" href="a00061.html#a17b06a78a2258990893fddf79d9268a0">00972</a>   <span class="keyword">virtual</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* <a class="code" href="a00061.html#a17b06a78a2258990893fddf79d9268a0" title="Returns a deep copy of this Mapping.">clone</a>()<span class="keyword"> const </span>{
<a name="l00973"></a>00973     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>(mapping-&gt;constClone());
<a name="l00974"></a>00974   }
<a name="l00975"></a>00975 };
<a name="l00976"></a>00976 
<a name="l00977"></a>00977 <span class="keyword">template</span>&lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>Interpolator&gt;
<a name="l00978"></a>00978 <span class="keyword">class </span><a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping</a>;
<a name="l00979"></a>00979 
<a name="l00999"></a>00999 <span class="keyword">template</span>&lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>Interpolator&gt;
<a name="l01000"></a><a class="code" href="a00149.html">01000</a> <span class="keyword">class </span><a class="code" href="a00149.html" title="Implementation of the MappingIterator-interface which is able to iterate over every value in a MultiD...">MultiDimMappingIterator</a>:<span class="keyword">public</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a> {
<a name="l01001"></a>01001 <span class="keyword">protected</span>:
<a name="l01003"></a>01003   <span class="keyword">typedef</span> <a class="code" href="a00110.html" title="Represents a std::map which is able to interpolate.">InterpolateableMap&lt; Interpolator&lt; std::map&lt;argument_value_t, Mapping*&gt;</a> &gt; &gt;
<a name="l01004"></a><a class="code" href="a00149.html#a1b55be43fd47c1879a3761d88a389cd3">01004</a>                                                                <a class="code" href="a00149.html#a1b55be43fd47c1879a3761d88a389cd3" title="The templated InterpolateableMap the underlying Mapping uses std::map as storage type.">interpolator_map_type</a>;
<a name="l01005"></a>01005 
<a name="l01006"></a>01006   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00110.html#a4c406f0681ae69646e492c3131786189" title="typedef for the returned Interpolated value of this class.">interpolator_map_type::interpolated</a>         interpolated;
<a name="l01007"></a>01007   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00109.html" title="Provides an interpolateable iterator for any Container which maps from keys to values which is able t...">interpolator_map_type::iterator_intpl</a>       <a class="code" href="a00109.html" title="Provides an interpolateable iterator for any Container which maps from keys to values which is able t...">iterator</a>;
<a name="l01008"></a>01008   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00057.html" title="Template for an interpolateable const iterator for any container which maps from a key to a value...">interpolator_map_type::const_iterator_intpl</a> <a class="code" href="a00057.html" title="Template for an interpolateable const iterator for any container which maps from a key to a value...">const_iterator</a>;
<a name="l01009"></a>01009 
<a name="l01011"></a><a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4">01011</a>   <span class="keyword">const</span> <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>&amp; <a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>;
<a name="l01012"></a>01012 
<a name="l01015"></a><a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347">01015</a>   <a class="code" href="a00109.html" title="Provides an interpolateable iterator for any Container which maps from keys to values which is able t...">iterator</a>                             <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>;
<a name="l01016"></a>01016 
<a name="l01018"></a><a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40">01018</a>   interpolated                         <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>;
<a name="l01019"></a>01019 
<a name="l01022"></a><a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06">01022</a>   <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>;
<a name="l01023"></a>01023 
<a name="l01025"></a><a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4">01025</a>   <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>;
<a name="l01026"></a>01026 
<a name="l01028"></a><a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297">01028</a>   <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>;
<a name="l01029"></a>01029 
<a name="l01030"></a>01030 <span class="keyword">protected</span>:
<a name="l01031"></a>01031 
<a name="l01039"></a><a class="code" href="a00149.html#a48c928d79af27bc468eb50cc24d15a38">01039</a>   <span class="keywordtype">void</span> <a class="code" href="a00149.html#a48c928d79af27bc468eb50cc24d15a38" title="Helper method which updates the sub-iterator for the passed position.">updateSubIterator</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) {
<a name="l01040"></a>01040     interpolated subM = <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#afd052facfd07e1a139a6da76d129917e" title="Returns the interpolated value at the current position of the Iterator.">getValue</a>();
<a name="l01041"></a>01041     <span class="keywordflow">if</span>(subM != <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>) {
<a name="l01042"></a>01042       <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
<a name="l01043"></a>01043         <span class="keyword">delete</span> <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>;
<a name="l01044"></a>01044 
<a name="l01045"></a>01045       <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a> = subM;
<a name="l01046"></a>01046       <span class="keywordflow">if</span>(*<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>)
<a name="l01047"></a>01047         <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = (*subMapping)-&gt;createIterator(pos);
<a name="l01048"></a>01048       <span class="keywordflow">else</span>
<a name="l01049"></a>01049         <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = 0;
<a name="l01050"></a>01050     } <span class="keywordflow">else</span> {
<a name="l01051"></a>01051       <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
<a name="l01052"></a>01052         <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#ae3cdbe2115d0e87af0da549b675f2bf8" title="Lets the iterator point to the passed position.">jumpTo</a>(pos);
<a name="l01053"></a>01053     }
<a name="l01054"></a>01054   }
<a name="l01055"></a>01055 
<a name="l01063"></a><a class="code" href="a00149.html#a37918121567f5a283b209113b2d4983a">01063</a>   <span class="keywordtype">void</span> <a class="code" href="a00149.html#a37918121567f5a283b209113b2d4983a" title="Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginni...">updateSubIterator</a>() {
<a name="l01064"></a>01064     interpolated subM = <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#afd052facfd07e1a139a6da76d129917e" title="Returns the interpolated value at the current position of the Iterator.">getValue</a>();
<a name="l01065"></a>01065     <span class="keywordflow">if</span>(subM != <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>) {
<a name="l01066"></a>01066       <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
<a name="l01067"></a>01067         <span class="keyword">delete</span> <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>;
<a name="l01068"></a>01068 
<a name="l01069"></a>01069       <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a> = subM;
<a name="l01070"></a>01070       <span class="keywordflow">if</span>(*<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>){
<a name="l01071"></a>01071         <span class="keywordflow">if</span>(<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>.isInterpolated)
<a name="l01072"></a>01072           <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = (*subMapping)-&gt;createIterator(<a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>);
<a name="l01073"></a>01073         <span class="keywordflow">else</span>
<a name="l01074"></a>01074           <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = (*subMapping)-&gt;createIterator();
<a name="l01075"></a>01075       }<span class="keywordflow">else</span>
<a name="l01076"></a>01076         <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = 0;
<a name="l01077"></a>01077     } <span class="keywordflow">else</span> {
<a name="l01078"></a>01078       <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
<a name="l01079"></a>01079         <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a6b6af19266855c21ce3e3449de3f0d6f" title="Lets the iterator point to the begin of the mapping.">jumpToBegin</a>();
<a name="l01080"></a>01080     }
<a name="l01081"></a>01081   }
<a name="l01082"></a>01082 
<a name="l01088"></a><a class="code" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97">01088</a>   <span class="keywordtype">void</span> <a class="code" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97" title="Helper method which updates the nextPosition member.">updateNextPosition</a>(){
<a name="l01089"></a>01089     <span class="keywordtype">bool</span> intp = <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>.isInterpolated;
<a name="l01090"></a>01090 
<a name="l01091"></a>01091     <span class="keywordtype">bool</span> noSubIt = <span class="keyword">false</span>;
<a name="l01092"></a>01092     <span class="keywordtype">bool</span> hasNoNext = <span class="keyword">false</span>;
<a name="l01093"></a>01093     <span class="keywordflow">if</span>(!intp){
<a name="l01094"></a>01094       noSubIt = !<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>;
<a name="l01095"></a>01095       <span class="keywordflow">if</span>(!noSubIt)
<a name="l01096"></a>01096         hasNoNext = !<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#ad4bac7233c154b7086c6124d2e21be49" title="Returns true if the iterator has a next value it can iterate to on a call to &quot;next()&quot;.">hasNext</a>();
<a name="l01097"></a>01097     }
<a name="l01098"></a>01098     <span class="keywordflow">if</span>(intp || noSubIt || hasNoNext){
<a name="l01099"></a>01099       <span class="keywordflow">if</span>(<a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a4906a4e7a03086a28d108fc262faa969" title="Returns true if the a call of &quot;next()&quot; would increase to the position of an a valid entry of the data...">hasNext</a>()){
<a name="l01100"></a>01100         <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* tmp = (*<a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.getNextValue())-&gt;createConstIterator();
<a name="l01101"></a>01101         <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(tmp-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>());
<a name="l01102"></a>01102         <span class="keyword">delete</span> tmp;
<a name="l01103"></a>01103       }<span class="keywordflow">else</span>{
<a name="l01104"></a>01104         <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a> = <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>;
<a name="l01105"></a>01105       }
<a name="l01106"></a>01106       <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>.<a class="code" href="a00013.html#a27bd7000e865670a673039233424d2ab" title="Changes the value for the specified dimension.">setArgValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension, <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.getNextPosition());
<a name="l01107"></a>01107 
<a name="l01108"></a>01108     } <span class="keywordflow">else</span> {
<a name="l01109"></a>01109       <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a1f4cae3b170754a76049b8e81b2e3c07" title="Returns the position the next call to &quot;next()&quot; of this Iterator would iterate to.">getNextPosition</a>());
<a name="l01110"></a>01110     }
<a name="l01111"></a>01111   }
<a name="l01112"></a>01112 <span class="keyword">private</span>:
<a name="l01115"></a>01115   <a class="code" href="a00149.html" title="Implementation of the MappingIterator-interface which is able to iterate over every value in a MultiD...">MultiDimMappingIterator</a>&amp; <a class="code" href="a00149.html#a5055b9a32550926693011c818111dcc4" title="Assignment operator is not allowed.">operator=</a>(<span class="keyword">const</span> <a class="code" href="a00149.html" title="Implementation of the MappingIterator-interface which is able to iterate over every value in a MultiD...">MultiDimMappingIterator</a>&amp;);
<a name="l01116"></a>01116 
<a name="l01117"></a>01117 <span class="keyword">public</span>:
<a name="l01122"></a><a class="code" href="a00149.html#a916ccca90ebffc95897f6c13bda9dd67">01122</a>   <a class="code" href="a00149.html#a916ccca90ebffc95897f6c13bda9dd67" title="Initializes the Iterator for the passed MultiDimMapping and sets its position two the first entry of ...">MultiDimMappingIterator</a>(<a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>&amp; pMapping):
<a name="l01123"></a>01123     <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>(), <a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>(pMapping),
<a name="l01124"></a>01124     <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>(pMapping.entries.beginIntpl()),
<a name="l01125"></a>01125     <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>(0), <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>(NULL),
<a name="l01126"></a>01126     <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>(), <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>()
<a name="l01127"></a>01127   {
<a name="l01128"></a>01128     <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a> = <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#afd052facfd07e1a139a6da76d129917e" title="Returns the interpolated value at the current position of the Iterator.">getValue</a>();
<a name="l01129"></a>01129     <span class="keywordflow">if</span>(!<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>.isInterpolated &amp;&amp; *<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>) {
<a name="l01130"></a>01130       <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = (*subMapping)-&gt;createIterator();
<a name="l01131"></a>01131       <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a> = <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>();
<a name="l01132"></a>01132       <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a27bd7000e865670a673039233424d2ab" title="Changes the value for the specified dimension.">setArgValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension, <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a2d8b162ab907fbc33e47db214f28518a" title="Returns the current position of the iterator.">getPosition</a>());
<a name="l01133"></a>01133     } <span class="keywordflow">else</span> {
<a name="l01134"></a>01134       <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a> = <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.dimensions);
<a name="l01135"></a>01135     }
<a name="l01136"></a>01136     <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a> = <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>;
<a name="l01137"></a>01137 
<a name="l01138"></a>01138     <a class="code" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97" title="Helper method which updates the nextPosition member.">updateNextPosition</a>();
<a name="l01139"></a>01139   }
<a name="l01140"></a>01140 
<a name="l01145"></a><a class="code" href="a00149.html#ad5d0da6708731305fdec6fe8086c1b65">01145</a>   <a class="code" href="a00149.html#a916ccca90ebffc95897f6c13bda9dd67" title="Initializes the Iterator for the passed MultiDimMapping and sets its position two the first entry of ...">MultiDimMappingIterator</a>(<a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>&amp; pMapping, <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos):
<a name="l01146"></a>01146     <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>(), <a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>(pMapping),
<a name="l01147"></a>01147     <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>(pMapping.entries.beginIntpl()<span class="comment">/*pMapping.entries.findIntpl(pos.getArgValue(pMapping.myDimension))*/</span>), <span class="comment">//ATTENTION: pMapping.entries.findIntpl(...) results in GCC-Crash at -O2</span>
<a name="l01148"></a>01148     <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>(0), <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>(NULL),
<a name="l01149"></a>01149     <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>(pos), <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>()
<a name="l01150"></a>01150   {
<a name="l01151"></a>01151     <span class="comment">// valueIt was not initialized with pMapping.entries.findIntpl(...), so we need the jumpTo-call</span>
<a name="l01152"></a>01152     <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#ad149b5c37b429ccc1fc5615c217cd3de" title="Moves the iterator to the passed position. This position can be any value of the Key-type.">jumpTo</a>(<a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a137a911de0281cbb519fe13727aa0813" title="Returns the value for the specified dimension.">getArgValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension));
<a name="l01153"></a>01153     <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a> = <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#afd052facfd07e1a139a6da76d129917e" title="Returns the interpolated value at the current position of the Iterator.">getValue</a>();
<a name="l01154"></a>01154     <span class="keywordflow">if</span>(*<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>){
<a name="l01155"></a>01155       <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = (*subMapping)-&gt;createIterator(<a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>);
<a name="l01156"></a>01156     }
<a name="l01157"></a>01157     <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a> = <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>;
<a name="l01158"></a>01158 
<a name="l01159"></a>01159     <a class="code" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97" title="Helper method which updates the nextPosition member.">updateNextPosition</a>();
<a name="l01160"></a>01160   }
<a name="l01161"></a>01161 
<a name="l01162"></a>01162   <a class="code" href="a00149.html#a916ccca90ebffc95897f6c13bda9dd67" title="Initializes the Iterator for the passed MultiDimMapping and sets its position two the first entry of ...">MultiDimMappingIterator</a>(<span class="keyword">const</span> <a class="code" href="a00149.html" title="Implementation of the MappingIterator-interface which is able to iterate over every value in a MultiD...">MultiDimMappingIterator</a>&amp; o):
<a name="l01163"></a>01163     <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>(o), <a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>(o.<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>),
<a name="l01164"></a>01164     <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>(o.<a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>),
<a name="l01165"></a>01165     <a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>(o.<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>), <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>(NULL),
<a name="l01166"></a>01166     <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>(o.<a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>), <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>(o.<a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>)
<a name="l01167"></a>01167   {
<a name="l01168"></a>01168     <span class="comment">// valueIt was not initialized with pMapping.entries.findIntpl(...), so we need the jumpTo-call</span>
<a name="l01169"></a>01169     <span class="keywordflow">if</span>(*<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>){
<a name="l01170"></a>01170       <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> = (*subMapping)-&gt;createIterator(<a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>);
<a name="l01171"></a>01171     }
<a name="l01172"></a>01172   }
<a name="l01173"></a>01173 
<a name="l01177"></a><a class="code" href="a00149.html#aa90d2e657fa6b0e773eec7c2fa713c4c">01177</a>   <span class="keyword">virtual</span> <a class="code" href="a00149.html#aa90d2e657fa6b0e773eec7c2fa713c4c" title="Frees the memory allocated for the sub mappings.">~MultiDimMappingIterator</a>() {
<a name="l01178"></a>01178     <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
<a name="l01179"></a>01179       <span class="keyword">delete</span> <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>;
<a name="l01180"></a>01180   }
<a name="l01181"></a>01181 
<a name="l01190"></a><a class="code" href="a00149.html#a71f35cd0d6fabecb65019466018c51ca">01190</a>   <span class="keywordtype">void</span> <a class="code" href="a00149.html#a71f35cd0d6fabecb65019466018c51ca" title="Lets the iterator point to the passed position.">jumpTo</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos){
<a name="l01191"></a>01191     argument_value_cref_t argVal = pos.<a class="code" href="a00013.html#a137a911de0281cbb519fe13727aa0813" title="Returns the value for the specified dimension.">getArgValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension);
<a name="l01192"></a>01192 
<a name="l01193"></a>01193     <span class="keywordflow">if</span>(argVal != <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a2d8b162ab907fbc33e47db214f28518a" title="Returns the current position of the iterator.">getPosition</a>() &amp;&amp; pos.<a class="code" href="a00013.html#a0e9998020362333915af80cde79df9e6" title="Returns true if this Argument has a value for the passed Dimension.">hasArgVal</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension)) {
<a name="l01194"></a>01194       <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#ad149b5c37b429ccc1fc5615c217cd3de" title="Moves the iterator to the passed position. This position can be any value of the Key-type.">jumpTo</a>(argVal);
<a name="l01195"></a>01195       <a class="code" href="a00149.html#a37918121567f5a283b209113b2d4983a" title="Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginni...">updateSubIterator</a>(pos);
<a name="l01196"></a>01196     } <span class="keywordflow">else</span> {
<a name="l01197"></a>01197       <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
<a name="l01198"></a>01198         <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#ae3cdbe2115d0e87af0da549b675f2bf8" title="Lets the iterator point to the passed position.">jumpTo</a>(pos);
<a name="l01199"></a>01199     }
<a name="l01200"></a>01200 
<a name="l01201"></a>01201     <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(pos);
<a name="l01202"></a>01202     <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(<a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>);
<a name="l01203"></a>01203     <a class="code" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97" title="Helper method which updates the nextPosition member.">updateNextPosition</a>();
<a name="l01204"></a>01204   }
<a name="l01205"></a>01205 
<a name="l01216"></a><a class="code" href="a00149.html#a3a3b5ddc5aa1636772b9a89c085acdfc">01216</a>   <span class="keywordtype">void</span> <a class="code" href="a00149.html#a3a3b5ddc5aa1636772b9a89c085acdfc" title="Iterates to the specified position. This method should be used if the new position is near the curren...">iterateTo</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos){
<a name="l01217"></a>01217     argument_value_cref_t argVal = pos.<a class="code" href="a00013.html#a137a911de0281cbb519fe13727aa0813" title="Returns the value for the specified dimension.">getArgValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension);
<a name="l01218"></a>01218 
<a name="l01219"></a>01219     <span class="keywordflow">if</span>(argVal != <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a2d8b162ab907fbc33e47db214f28518a" title="Returns the current position of the iterator.">getPosition</a>() &amp;&amp; pos.<a class="code" href="a00013.html#a0e9998020362333915af80cde79df9e6" title="Returns true if this Argument has a value for the passed Dimension.">hasArgVal</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension)) {
<a name="l01220"></a>01220       <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a0a190c448a5cfbcd3385c6ccd316542f" title="forward iterates the iterator to the passed position. This position can be any value of the Key-type...">iterateTo</a>(argVal);
<a name="l01221"></a>01221       <a class="code" href="a00149.html#a37918121567f5a283b209113b2d4983a" title="Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginni...">updateSubIterator</a>(pos);
<a name="l01222"></a>01222     } <span class="keywordflow">else</span> {
<a name="l01223"></a>01223       <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
<a name="l01224"></a>01224         <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a607d741e2d841265851a85670f247c46" title="Iterates to the specified position. This method should be used if the new position is near the curren...">iterateTo</a>(pos);
<a name="l01225"></a>01225     }
<a name="l01226"></a>01226 
<a name="l01227"></a>01227     <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(pos);
<a name="l01228"></a>01228     <a class="code" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97" title="Helper method which updates the nextPosition member.">updateNextPosition</a>();
<a name="l01229"></a>01229   }
<a name="l01230"></a>01230 
<a name="l01243"></a><a class="code" href="a00149.html#a8928195a1fe4bb3af81d3ffe2391827e">01243</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00149.html#a8928195a1fe4bb3af81d3ffe2391827e" title="Iterates to the next position of the function.">next</a>(){
<a name="l01244"></a>01244     <span class="keywordflow">if</span>(!<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>.isInterpolated &amp;&amp; <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> &amp;&amp; <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#ad4bac7233c154b7086c6124d2e21be49" title="Returns true if the iterator has a next value it can iterate to on a call to &quot;next()&quot;.">hasNext</a>()) {
<a name="l01245"></a>01245       <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#afdafa6870cd19b3d35674a7bc777585d" title="Iterates to the next position of the Mapping.">next</a>();
<a name="l01246"></a>01246     } <span class="keywordflow">else</span> {
<a name="l01247"></a>01247       <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#aa9b9aaf1491ef6ef251bc7399aecdf52" title="Iterates to the next entry in the underlying data structure.">next</a>();
<a name="l01248"></a>01248       <a class="code" href="a00149.html#a37918121567f5a283b209113b2d4983a" title="Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginni...">updateSubIterator</a>();
<a name="l01249"></a>01249     }
<a name="l01250"></a>01250 
<a name="l01251"></a>01251 
<a name="l01252"></a>01252     <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
<a name="l01253"></a>01253       <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>());
<a name="l01254"></a>01254 
<a name="l01255"></a>01255     <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a27bd7000e865670a673039233424d2ab" title="Changes the value for the specified dimension.">setArgValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension, <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a2d8b162ab907fbc33e47db214f28518a" title="Returns the current position of the iterator.">getPosition</a>());
<a name="l01256"></a>01256 
<a name="l01257"></a>01257     <a class="code" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97" title="Helper method which updates the nextPosition member.">updateNextPosition</a>();
<a name="l01258"></a>01258   }
<a name="l01259"></a>01259 
<a name="l01269"></a><a class="code" href="a00149.html#ae4f87a308ad4648d289f1f66d8da772a">01269</a>   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="a00149.html#ae4f87a308ad4648d289f1f66d8da772a" title="Returns true if the current position of the iterator is in range of the function.">inRange</a>()<span class="keyword"> const </span>{
<a name="l01270"></a>01270     <span class="keywordflow">return</span> <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a4eca971338ae67b5ee34503cbcf1f342" title="Returns true if the current position of the iterator is between the position of the first and the las...">inRange</a>() &amp;&amp; (<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>.isInterpolated || (<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> &amp;&amp; <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a4a6348a453418da95978e570fec046fc" title="Returns true if the current position of the iterator is in range of the function.">inRange</a>()));
<a name="l01271"></a>01271   }
<a name="l01272"></a>01272 
<a name="l01278"></a><a class="code" href="a00149.html#a89318443b1c2944e453df221ebdd2d3e">01278</a>   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; <a class="code" href="a00149.html#a89318443b1c2944e453df221ebdd2d3e" title="Returns the current position of the iterator.">getPosition</a>()<span class="keyword"> const </span>{
<a name="l01279"></a>01279     <span class="keywordflow">return</span> <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>;
<a name="l01280"></a>01280   }
<a name="l01281"></a>01281 
<a name="l01287"></a><a class="code" href="a00149.html#a6b780009865b8643c7587c2833ee2fb1">01287</a>   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; <a class="code" href="a00149.html#a6b780009865b8643c7587c2833ee2fb1" title="returns the next position a call to &quot;next()&quot; would jump to.">getNextPosition</a>()<span class="keyword"> const </span>{
<a name="l01288"></a>01288     <span class="keywordflow">return</span> <a class="code" href="a00149.html#ae3c745c1fea3a1bcd5694b5e1a692297" title="The position a call to &quot;next()&quot; would jump to.">nextPosition</a>;
<a name="l01289"></a>01289   }
<a name="l01290"></a>01290 
<a name="l01297"></a><a class="code" href="a00149.html#a3a28409c944c35a15d0353abd689273d">01297</a>   <span class="keyword">virtual</span> argument_value_t <a class="code" href="a00149.html#a3a28409c944c35a15d0353abd689273d" title="Returns the value of the underlying mapping at the current position.">getValue</a>()<span class="keyword"> const </span>{
<a name="l01298"></a>01298     <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
<a name="l01299"></a>01299       <span class="keywordflow">return</span> <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#ad4419c259e747867f003d07d62d4259f" title="Returns the value of the Mapping at the current position.">getValue</a>();
<a name="l01300"></a>01300     <span class="keywordflow">else</span>
<a name="l01301"></a>01301       <span class="keywordflow">return</span> <a class="code" href="a00013.html#a8523627cdc70492e5e0935b9a3a78cc4" title="Zero value of a Argument value.">Argument::MappedZero</a>;
<a name="l01302"></a>01302   }
<a name="l01303"></a>01303 
<a name="l01312"></a><a class="code" href="a00149.html#ab41125ce8959de6fafb3347a7691ca52">01312</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00149.html#ab41125ce8959de6fafb3347a7691ca52" title="Lets the iterator point to the begin of the function.">jumpToBegin</a>(){
<a name="l01313"></a>01313     <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a812d4bd2ab7b419deb933b8c472e1912" title="Moves the iterator to the first element.">jumpToBegin</a>();
<a name="l01314"></a>01314     <a class="code" href="a00149.html#a37918121567f5a283b209113b2d4983a" title="Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginni...">updateSubIterator</a>();
<a name="l01315"></a>01315     <span class="keywordflow">if</span>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>)
<a name="l01316"></a>01316       <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a72ac36c91caaeb8f34eb091abff19c51" title="Update the values of this Argument with the values of the passed Argument.">setArgValues</a>(<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>());
<a name="l01317"></a>01317 
<a name="l01318"></a>01318     <a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>.<a class="code" href="a00013.html#a27bd7000e865670a673039233424d2ab" title="Changes the value for the specified dimension.">setArgValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.myDimension, <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a2d8b162ab907fbc33e47db214f28518a" title="Returns the current position of the iterator.">getPosition</a>());
<a name="l01319"></a>01319     <a class="code" href="a00149.html#a1eb04551f2a3ae22f0eae4844f14ac97" title="Helper method which updates the nextPosition member.">updateNextPosition</a>();
<a name="l01320"></a>01320   }
<a name="l01321"></a>01321 
<a name="l01328"></a><a class="code" href="a00149.html#a99bbed82612268040bb8f5162871fb48">01328</a>     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="a00149.html#a99bbed82612268040bb8f5162871fb48" title="Returns true if the iterator has a valid next value a call to &quot;next()&quot; could jump to...">hasNext</a>()<span class="keyword"> const </span>{
<a name="l01329"></a>01329         <span class="keywordflow">return</span> <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a4906a4e7a03086a28d108fc262faa969" title="Returns true if the a call of &quot;next()&quot; would increase to the position of an a valid entry of the data...">hasNext</a>() || (<a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a> &amp;&amp; <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00059.html#ad4bac7233c154b7086c6124d2e21be49" title="Returns true if the iterator has a next value it can iterate to on a call to &quot;next()&quot;.">hasNext</a>() &amp;&amp; <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00057.html#a4eca971338ae67b5ee34503cbcf1f342" title="Returns true if the current position of the iterator is between the position of the first and the las...">inRange</a>());
<a name="l01330"></a>01330     }
<a name="l01331"></a>01331 
<a name="l01338"></a><a class="code" href="a00149.html#af1b499c6d24b81cee68e09ad224087c9">01338</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00149.html#af1b499c6d24b81cee68e09ad224087c9" title="Changes the value of the function at the current position.">setValue</a>(argument_value_cref_t value){
<a name="l01339"></a>01339     <span class="keywordflow">if</span>(<a class="code" href="a00149.html#aceffeb12d2e2bc67226d32ee4206fa40" title="The sub-mapping of the sub-mapping map at the current position.">subMapping</a>.isInterpolated) {
<a name="l01340"></a>01340       <a class="code" href="a00149.html#a01dc79b6fe25cb048651ae8870e3d347" title="Iterator storing the current position inside the underlying Mappings sub-mapping map.">valueIt</a>.<a class="code" href="a00109.html#ac9ff6164dadb0782ba712d238fc5fa86" title=": Changes (and adds if necessary) the value for the entry at the current position of the iterator to ...">setValue</a>(<a class="code" href="a00149.html#a77251b9d1da4418ccb2903fc94c7fcd4" title="The MultiDimmapping to iterate over.">mapping</a>.createSubSignal());
<a name="l01341"></a>01341       <a class="code" href="a00149.html#a37918121567f5a283b209113b2d4983a" title="Helper method which updates the sub-iterator and sets the position of the sub-iterator to its beginni...">updateSubIterator</a>(<a class="code" href="a00149.html#afa4ac8d36d24e411a3edce590b3c21a4" title="The current position in every Dimension of this Iterator.">position</a>);
<a name="l01342"></a>01342     }
<a name="l01343"></a>01343     <a class="code" href="a00149.html#ac2c7a223c07841c72d0ff860b0513e06" title="An iterator for the sub-mapping which points two the current position in the next dimensions...">subIterator</a>-&gt;<a class="code" href="a00137.html#a68c80b10de257d7cfd68f49bfd6a2cbe" title="Changes the value of the Mapping at the current position.">setValue</a>(value);
<a name="l01344"></a>01344   }
<a name="l01345"></a>01345 };
<a name="l01346"></a>01346 
<a name="l01347"></a>01347 
<a name="l01348"></a>01348 
<a name="l01364"></a>01364 <span class="keyword">template</span>&lt;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>&gt; <span class="keyword">class </span>Interpolator&gt;
<a name="l01365"></a><a class="code" href="a00148.html">01365</a> <span class="keyword">class </span><a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping</a>:<span class="keyword">public</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a> {
<a name="l01366"></a>01366 <span class="keyword">protected</span>:
<a name="l01368"></a>01368   <span class="keyword">typedef</span> <a class="code" href="a00110.html" title="Represents a std::map which is able to interpolate.">InterpolateableMap&lt; Interpolator&lt; std::map&lt;argument_value_t, Mapping*&gt;</a> &gt; &gt;
<a name="l01369"></a><a class="code" href="a00148.html#a681c187c017568b30ab1f955205642ac">01369</a>                                                                <a class="code" href="a00148.html#a681c187c017568b30ab1f955205642ac" title="The templated InterpolateableMap the underlying Mapping uses std::map as storage type.">interpolator_map_type</a>;
<a name="l01370"></a>01370   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00118.html">interpolator_map_type::interpolator_type</a>    <a class="code" href="a00118.html">interpolator_type</a>;
<a name="l01371"></a>01371   <span class="keyword">typedef</span> <span class="keyword">typename</span> interpolator_map_type::mapped_type          mapped_type;
<a name="l01372"></a>01372   <span class="keyword">typedef</span> <span class="keyword">typename</span> interpolator_map_type::mapped_cref_type     mapped_cref_type;
<a name="l01373"></a>01373   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00109.html" title="Provides an interpolateable iterator for any Container which maps from keys to values which is able t...">interpolator_map_type::iterator_intpl</a>       <a class="code" href="a00109.html" title="Provides an interpolateable iterator for any Container which maps from keys to values which is able t...">iterator</a>;
<a name="l01374"></a>01374   <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="a00057.html" title="Template for an interpolateable const iterator for any container which maps from a key to a value...">interpolator_map_type::const_iterator_intpl</a> <a class="code" href="a00057.html" title="Template for an interpolateable const iterator for any container which maps from a key to a value...">const_iterator</a>;
<a name="l01375"></a>01375 
<a name="l01380"></a><a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed">01380</a>   <a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a>* <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>;
<a name="l01381"></a>01381 
<a name="l01386"></a><a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9">01386</a>   <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>* <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>;
<a name="l01387"></a>01387 
<a name="l01389"></a><a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6">01389</a>   <a class="code" href="a00110.html">interpolator_map_type</a>       <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>;
<a name="l01390"></a>01390 
<a name="l01392"></a><a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac">01392</a>   <a class="code" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> <a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>;
<a name="l01393"></a>01393 
<a name="l01394"></a>01394   <span class="keywordtype">bool</span> isMaster;
<a name="l01395"></a>01395 
<a name="l01396"></a>01396   <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a00149.html" title="Implementation of the MappingIterator-interface which is able to iterate over every value in a MultiD...">MultiDimMappingIterator</a>&lt;Interpolator&gt;;
<a name="l01397"></a>01397 
<a name="l01398"></a>01398 <span class="keyword">protected</span>:
<a name="l01407"></a><a class="code" href="a00148.html#a9d4b17004ec39759f5876865a27a4f04">01407</a>   <a class="code" href="a00148.html#a9d4b17004ec39759f5876865a27a4f04" title="Initializes the Mapping with the passed DimensionSet as domain and the passed dimension as the dimens...">MultiDimMapping</a>(<span class="keyword">const</span> <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>&amp; myDims, <a class="code" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> myDim):
<a name="l01408"></a>01408       <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>(myDims),
<a name="l01409"></a>01409       <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>(0),
<a name="l01410"></a>01410       <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>(0),
<a name="l01411"></a>01411       <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>(),
<a name="l01412"></a>01412       <a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>(myDim),
<a name="l01413"></a>01413       isMaster(false) {}
<a name="l01414"></a>01414 
<a name="l01423"></a><a class="code" href="a00148.html#aee38eb77b429791423a13e020a3b15fd">01423</a>   <a class="code" href="a00148.html#a9d4b17004ec39759f5876865a27a4f04" title="Initializes the Mapping with the passed DimensionSet as domain and the passed dimension as the dimens...">MultiDimMapping</a>(<span class="keyword">const</span> <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>&amp; myDims, <a class="code" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> myDim,
<a name="l01424"></a>01424           <a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a>* oorm,
<a name="l01425"></a>01425           <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>* wrappedoorm):
<a name="l01426"></a>01426       <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>(myDims),
<a name="l01427"></a>01427       <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>(oorm),
<a name="l01428"></a>01428       <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>(wrappedoorm),
<a name="l01429"></a>01429       <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>(<a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>),
<a name="l01430"></a>01430       <a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>(myDim),
<a name="l01431"></a>01431       isMaster(false) {}
<a name="l01432"></a>01432 
<a name="l01437"></a><a class="code" href="a00148.html#a3ac6685b718a771032556e192752c528">01437</a>   <a class="code" href="a00148.html#a9d4b17004ec39759f5876865a27a4f04" title="Initializes the Mapping with the passed DimensionSet as domain and the passed dimension as the dimens...">MultiDimMapping</a>(<span class="keyword">const</span> <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>&amp; o,
<a name="l01438"></a>01438           <a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a>* oorm,
<a name="l01439"></a>01439           <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>* wrappedoorm):
<a name="l01440"></a>01440     <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>(o),
<a name="l01441"></a>01441     <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>(oorm),
<a name="l01442"></a>01442     <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>(wrappedoorm),
<a name="l01443"></a>01443     <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>(o.<a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>),
<a name="l01444"></a>01444     <a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>(o.<a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>),
<a name="l01445"></a>01445     isMaster(false){
<a name="l01446"></a>01446 
<a name="l01447"></a>01447     <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.setOutOfRangeVal(<a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>);
<a name="l01448"></a>01448 
<a name="l01449"></a>01449     copySubMappings();
<a name="l01450"></a>01450   }
<a name="l01451"></a>01451 
<a name="l01456"></a><a class="code" href="a00148.html#a1fbdfd6bd7d903fdd388556ead454461">01456</a>   mapped_type <a class="code" href="a00148.html#a1fbdfd6bd7d903fdd388556ead454461" title="Internal helper method which creates a new sub-mapping for this MultiDimMapping instance.">createSubSignal</a>()<span class="keyword"> const</span>{
<a name="l01457"></a>01457     <span class="keyword">const</span> <a class="code" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a>&amp; nextDim = *(--<a class="code" href="a00058.html#a009539b72014b7bed96402a5c244fca5" title="The dimensions of this mappings domain.">dimensions</a>.find(<a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>));
<a name="l01458"></a>01458     <span class="keywordflow">if</span>(<a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a> == 0) {
<a name="l01459"></a>01459       <span class="keywordflow">if</span>(nextDim == <a class="code" href="a00085.html#a16cb1f186dd3f48d33a4aebe948001d7" title="Shortcut to the time Dimension, same as &#39;Dimension(&quot;time&quot;)&#39;, but spares the parsing of a string...">Dimension::time</a>)
<a name="l01460"></a>01460         <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00212.html" title="Implements the Mapping-interface with an InterpolateableMap from simtime_t to double between which va...">TimeMapping&lt;Interpolator&gt;</a>();
<a name="l01461"></a>01461       <span class="keywordflow">else</span>
<a name="l01462"></a>01462         <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>(<a class="code" href="a00058.html#a009539b72014b7bed96402a5c244fca5" title="The dimensions of this mappings domain.">dimensions</a>, nextDim);
<a name="l01463"></a>01463     } <span class="keywordflow">else</span> {
<a name="l01464"></a>01464       <span class="keywordflow">if</span>(nextDim == <a class="code" href="a00085.html#a16cb1f186dd3f48d33a4aebe948001d7" title="Shortcut to the time Dimension, same as &#39;Dimension(&quot;time&quot;)&#39;, but spares the parsing of a string...">Dimension::time</a>)
<a name="l01465"></a>01465         <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00212.html" title="Implements the Mapping-interface with an InterpolateableMap from simtime_t to double between which va...">TimeMapping&lt;Interpolator&gt;</a>(<a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>-&gt;<a class="code" href="a00055.html#a64ad8ca116f9a3f0ea575954f43a6706" title="Returns the value of the mapping at the passed position.">getValue</a>());
<a name="l01466"></a>01466       <span class="keywordflow">else</span>
<a name="l01467"></a>01467         <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>(<a class="code" href="a00058.html#a009539b72014b7bed96402a5c244fca5" title="The dimensions of this mappings domain.">dimensions</a>, nextDim, <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>, <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>);
<a name="l01468"></a>01468     }
<a name="l01469"></a>01469   }
<a name="l01470"></a>01470 
<a name="l01471"></a>01471   <span class="keywordtype">void</span> copySubMappings(){
<a name="l01472"></a>01472     <span class="keyword">const</span> <span class="keyword">typename</span> interpolator_map_type::iterator itEnd   = <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.end();
<a name="l01473"></a>01473     <a class="code" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a>                                      nextDim = *(--<a class="code" href="a00058.html#a009539b72014b7bed96402a5c244fca5" title="The dimensions of this mappings domain.">dimensions</a>.find(<a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>));
<a name="l01474"></a>01474 
<a name="l01475"></a>01475     <span class="keywordflow">if</span>(nextDim == <a class="code" href="a00085.html#a16cb1f186dd3f48d33a4aebe948001d7" title="Shortcut to the time Dimension, same as &#39;Dimension(&quot;time&quot;)&#39;, but spares the parsing of a string...">Dimension::time</a>) {
<a name="l01476"></a>01476       <span class="keywordflow">for</span>(<span class="keyword">typename</span> interpolator_map_type::iterator it = <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.begin(); it != itEnd; ++it) {
<a name="l01477"></a>01477         it-&gt;second = <span class="keyword">new</span> <a class="code" href="a00212.html" title="Implements the Mapping-interface with an InterpolateableMap from simtime_t to double between which va...">TimeMapping&lt;Interpolator&gt;</a>(*(<span class="keyword">static_cast&lt;</span><a class="code" href="a00212.html" title="Implements the Mapping-interface with an InterpolateableMap from simtime_t to double between which va...">TimeMapping&lt;Interpolator&gt;</a>*<span class="keyword">&gt;</span>(it-&gt;second)));
<a name="l01478"></a>01478       }
<a name="l01479"></a>01479     }
<a name="l01480"></a>01480     <span class="keywordflow">else</span> {
<a name="l01481"></a>01481       <span class="keywordflow">for</span>(<span class="keyword">typename</span> interpolator_map_type::iterator it = <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.begin(); it != itEnd; ++it) {
<a name="l01482"></a>01482         <span class="keywordflow">if</span>(<a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a> == 0) {
<a name="l01483"></a>01483           it-&gt;second = <span class="keyword">new</span> <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>(*(<span class="keyword">static_cast&lt;</span><a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>*<span class="keyword">&gt;</span>(it-&gt;second)));
<a name="l01484"></a>01484         } <span class="keywordflow">else</span> {
<a name="l01485"></a>01485           it-&gt;second = <span class="keyword">new</span> <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>(*(<span class="keyword">static_cast&lt;</span><a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>*<span class="keyword">&gt;</span>(it-&gt;second)), <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>, <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>);
<a name="l01486"></a>01486         }
<a name="l01487"></a>01487       }
<a name="l01488"></a>01488     }
<a name="l01489"></a>01489   }
<a name="l01490"></a>01490 
<a name="l01491"></a>01491 <span class="keyword">public</span>:
<a name="l01497"></a><a class="code" href="a00148.html#ae6bc0b889d690c6f0993d0f03a0b159b">01497</a>   <a class="code" href="a00148.html#a9d4b17004ec39759f5876865a27a4f04" title="Initializes the Mapping with the passed DimensionSet as domain and the passed dimension as the dimens...">MultiDimMapping</a>(<span class="keyword">const</span> <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>&amp; myDims):
<a name="l01498"></a>01498     <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>(myDims),
<a name="l01499"></a>01499     <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>(0),
<a name="l01500"></a>01500     <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>(0),
<a name="l01501"></a>01501     <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>(),
<a name="l01502"></a>01502     <a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>(),
<a name="l01503"></a>01503     isMaster(true){
<a name="l01504"></a>01504 
<a name="l01505"></a>01505     <a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a> = *(<a class="code" href="a00058.html#a009539b72014b7bed96402a5c244fca5" title="The dimensions of this mappings domain.">dimensions</a>.rbegin());
<a name="l01506"></a>01506   }
<a name="l01507"></a>01507 
<a name="l01513"></a><a class="code" href="a00148.html#a684348697ba51462eccf00c92f99ea64">01513</a>   <a class="code" href="a00148.html#a9d4b17004ec39759f5876865a27a4f04" title="Initializes the Mapping with the passed DimensionSet as domain and the passed dimension as the dimens...">MultiDimMapping</a>(<span class="keyword">const</span> <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>&amp; myDims, argument_value_cref_t oorv):
<a name="l01514"></a>01514     <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>(myDims),
<a name="l01515"></a>01515     <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>(new <a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a>(myDims, oorv)),
<a name="l01516"></a>01516     <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>(new <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>(<a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>)),
<a name="l01517"></a>01517     <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>(<a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>),
<a name="l01518"></a>01518     <a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>(),
<a name="l01519"></a>01519     isMaster(true) {
<a name="l01520"></a>01520 
<a name="l01521"></a>01521     <a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a> = *(<a class="code" href="a00058.html#a009539b72014b7bed96402a5c244fca5" title="The dimensions of this mappings domain.">dimensions</a>.rbegin());
<a name="l01522"></a>01522   }
<a name="l01523"></a>01523 
<a name="l01528"></a><a class="code" href="a00148.html#a21647d49bf4759d7e1eac552fa518b43">01528</a>   <a class="code" href="a00148.html#a9d4b17004ec39759f5876865a27a4f04" title="Initializes the Mapping with the passed DimensionSet as domain and the passed dimension as the dimens...">MultiDimMapping</a>(<span class="keyword">const</span> <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>&amp; o):
<a name="l01529"></a>01529     <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>(o),
<a name="l01530"></a>01530     <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>(o.<a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>),
<a name="l01531"></a>01531     <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>(o.<a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>),
<a name="l01532"></a>01532     <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>(o.<a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>),
<a name="l01533"></a>01533     <a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>(o.<a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>),
<a name="l01534"></a>01534     isMaster(true) {
<a name="l01535"></a>01535 
<a name="l01536"></a>01536     <span class="keywordflow">if</span>(<a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a> != 0){
<a name="l01537"></a>01537       <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a> = <span class="keyword">new</span> <a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a>(<a class="code" href="a00058.html#a009539b72014b7bed96402a5c244fca5" title="The dimensions of this mappings domain.">dimensions</a>, o.<a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>-&gt;<a class="code" href="a00055.html#a64ad8ca116f9a3f0ea575954f43a6706" title="Returns the value of the mapping at the passed position.">getValue</a>());
<a name="l01538"></a>01538       <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a> = <span class="keyword">new</span> <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>(<a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>);
<a name="l01539"></a>01539       <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.setOutOfRangeVal(wrappedOORMapping);
<a name="l01540"></a>01540     }
<a name="l01541"></a>01541     copySubMappings();
<a name="l01542"></a>01542   }
<a name="l01543"></a>01543 
<a name="l01548"></a><a class="code" href="a00148.html#adf3d7e794c6e10795a4fa18d6e3b67d0">01548</a>   <span class="keyword">const</span> <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping</a>&amp; <a class="code" href="a00148.html#adf3d7e794c6e10795a4fa18d6e3b67d0" title="Copy operator which assures that the sub-mappings are deep copied instead of only their the pointers...">operator=</a>(<span class="keyword">const</span> <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>&amp; o){
<a name="l01549"></a>01549     <span class="keyword">const</span> <span class="keyword">typename</span> interpolator_map_type::const_iterator itEnd = <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.end();
<a name="l01550"></a>01550     <span class="keywordflow">for</span>(<span class="keyword">typename</span> interpolator_map_type::const_iterator it = <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.begin(); it != itEnd; ++it) {
<a name="l01551"></a>01551       <span class="keywordflow">if</span>(it-&gt;second)
<a name="l01552"></a>01552         <span class="keyword">delete</span> it-&gt;second;
<a name="l01553"></a>01553     }
<a name="l01554"></a>01554 
<a name="l01555"></a>01555     <a class="code" href="a00058.html#a009539b72014b7bed96402a5c244fca5" title="The dimensions of this mappings domain.">dimensions</a>        = o.<a class="code" href="a00058.html#a009539b72014b7bed96402a5c244fca5" title="The dimensions of this mappings domain.">dimensions</a>;
<a name="l01556"></a>01556     <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>           = o.<a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>;
<a name="l01557"></a>01557     <a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>       = o.<a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>;
<a name="l01558"></a>01558     <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a> = o.<a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>;
<a name="l01559"></a>01559     <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a> = o.<a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>;
<a name="l01560"></a>01560     isMaster          = <span class="keyword">true</span>;
<a name="l01561"></a>01561 
<a name="l01562"></a>01562     <span class="keywordflow">if</span>(<a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a> != 0){
<a name="l01563"></a>01563       <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a> = <span class="keyword">new</span> <a class="code" href="a00055.html" title="Represents a constant mathematical mapping (f(x) = c)">ConstantSimpleConstMapping</a>(<a class="code" href="a00058.html#a009539b72014b7bed96402a5c244fca5" title="The dimensions of this mappings domain.">dimensions</a>, o.<a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>-&gt;<a class="code" href="a00055.html#a64ad8ca116f9a3f0ea575954f43a6706" title="Returns the value of the mapping at the passed position.">getValue</a>());
<a name="l01564"></a>01564       <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a> = <span class="keyword">new</span> <a class="code" href="a00061.html" title="Wraps an ConstMapping into a Mapping interface.">ConstMappingWrapper</a>(<a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>);
<a name="l01565"></a>01565       <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.setOutOfRangeVal(wrappedOORMapping);
<a name="l01566"></a>01566     }
<a name="l01567"></a>01567 
<a name="l01568"></a>01568     copySubMappings();
<a name="l01569"></a>01569 
<a name="l01570"></a>01570     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l01571"></a>01571   }
<a name="l01572"></a>01572 
<a name="l01576"></a><a class="code" href="a00148.html#aa9694225933d71570d8575dbbad1e55f">01576</a>   <span class="keyword">virtual</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* <a class="code" href="a00148.html#aa9694225933d71570d8575dbbad1e55f" title="returns a deep copy of this mapping instance.">clone</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Interpolator&gt;</a>(*this); }
<a name="l01577"></a>01577 
<a name="l01581"></a><a class="code" href="a00148.html#af3aab4125df7b412bc7096779593f473">01581</a>   <span class="keyword">virtual</span> <a class="code" href="a00148.html#af3aab4125df7b412bc7096779593f473" title="Frees the memory for the sub mappings.">~MultiDimMapping</a>() {
<a name="l01582"></a>01582     <span class="keyword">const</span> <span class="keyword">typename</span> interpolator_map_type::const_iterator itEnd = <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.end();
<a name="l01583"></a>01583     <span class="keywordflow">for</span>(<span class="keyword">typename</span> interpolator_map_type::const_iterator it = <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.begin(); it != itEnd; ++it) {
<a name="l01584"></a>01584       <span class="keywordflow">if</span> (it-&gt;second)
<a name="l01585"></a>01585         <span class="keyword">delete</span> it-&gt;second;
<a name="l01586"></a>01586       }
<a name="l01587"></a>01587 
<a name="l01588"></a>01588     <span class="keywordflow">if</span>(isMaster) {
<a name="l01589"></a>01589       <span class="keywordflow">if</span>(<a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>)
<a name="l01590"></a>01590         <span class="keyword">delete</span> <a class="code" href="a00148.html#a50d98bf7c2b8070242694fda40ca49ed" title="Returned by the Interpolator if the mapping is accessed outside its range (before or after the last k...">outOfRangeMapping</a>;
<a name="l01591"></a>01591       <span class="keywordflow">if</span>(<a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>)
<a name="l01592"></a>01592         <span class="keyword">delete</span> <a class="code" href="a00148.html#ac0623ee0b39d257c2283d4ab6ca9fcf9" title="Wraps the out of range mapping which is an instance of ConstMapping inside an instance of Mapping whi...">wrappedOORMapping</a>;
<a name="l01593"></a>01593     }
<a name="l01594"></a>01594   }
<a name="l01595"></a>01595 
<a name="l01603"></a><a class="code" href="a00148.html#a524f27f6b8f01dc973dbe54f0f9c5ed2">01603</a>   <span class="keyword">virtual</span> argument_value_t <a class="code" href="a00148.html#a524f27f6b8f01dc973dbe54f0f9c5ed2" title="Returns the value of this Mapping at position specified by the passed Argument.">getValue</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos)<span class="keyword"> const </span>{
<a name="l01604"></a>01604     assert(pos.<a class="code" href="a00013.html#a0e9998020362333915af80cde79df9e6" title="Returns true if this Argument has a value for the passed Dimension.">hasArgVal</a>(<a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>));
<a name="l01605"></a>01605     argument_value_cref_t                        argVal = pos.<a class="code" href="a00013.html#a137a911de0281cbb519fe13727aa0813" title="Returns the value for the specified dimension.">getArgValue</a>(<a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>);
<a name="l01606"></a>01606     <span class="keyword">typename</span> <a class="code" href="a00111.html">interpolator_map_type::interpolated</a> subM   = <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.getIntplValue(argVal);
<a name="l01607"></a>01607 
<a name="l01608"></a>01608     <span class="keywordflow">if</span>(!(*subM))
<a name="l01609"></a>01609       <span class="keywordflow">return</span> <a class="code" href="a00013.html#a8523627cdc70492e5e0935b9a3a78cc4" title="Zero value of a Argument value.">Argument::MappedZero</a>;
<a name="l01610"></a>01610 
<a name="l01611"></a>01611     <span class="keywordflow">return</span> (*subM)-&gt;getValue(pos);
<a name="l01612"></a>01612   }
<a name="l01613"></a>01613 
<a name="l01621"></a><a class="code" href="a00148.html#a7b50181a1d5e38902c6468bc739f6aa7">01621</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00148.html#a7b50181a1d5e38902c6468bc739f6aa7" title="Changes the value of the Mapping at the specified position.">setValue</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos, argument_value_cref_t value) {
<a name="l01622"></a>01622     argument_value_cref_t                    argVal = pos.<a class="code" href="a00013.html#a137a911de0281cbb519fe13727aa0813" title="Returns the value for the specified dimension.">getArgValue</a>(<a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>);
<a name="l01623"></a>01623     <span class="keyword">typename</span> interpolator_map_type::iterator posIt  = <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.lower_bound(argVal);
<a name="l01624"></a>01624 
<a name="l01625"></a>01625     <span class="keywordflow">if</span>(posIt == <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.end() || (<a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.key_comp()(argVal, posIt-&gt;first))) {
<a name="l01626"></a>01626       posIt = <a class="code" href="a00148.html#a3109620ad45efea2104ebc7fa80662f6" title="Stores the sub-mappings for the dimension this instance represents.">entries</a>.insert(posIt, std::make_pair(argVal, <a class="code" href="a00148.html#a1fbdfd6bd7d903fdd388556ead454461" title="Internal helper method which creates a new sub-mapping for this MultiDimMapping instance.">createSubSignal</a>()));
<a name="l01627"></a>01627     }
<a name="l01628"></a>01628     posIt-&gt;second-&gt;setValue(pos, value);
<a name="l01629"></a>01629   }
<a name="l01630"></a>01630 
<a name="l01638"></a><a class="code" href="a00148.html#a903bef6518f96f54537beed48002b5fa">01638</a>   <span class="keyword">virtual</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00148.html#a903bef6518f96f54537beed48002b5fa" title="Returns a pointer of a new Iterator which is able to iterate over the Mapping and can change the valu...">createIterator</a>() {
<a name="l01639"></a>01639     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00149.html" title="Implementation of the MappingIterator-interface which is able to iterate over every value in a MultiD...">MultiDimMappingIterator&lt;Interpolator&gt;</a>(*this);
<a name="l01640"></a>01640   }
<a name="l01641"></a>01641 
<a name="l01649"></a><a class="code" href="a00148.html#a2aa6a9a6b64954e20c6ee15f4bfb9925">01649</a>   <span class="keyword">virtual</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00148.html#a2aa6a9a6b64954e20c6ee15f4bfb9925" title="Returns a pointer of a new Iterator which is able to iterate over the Mapping and can change the valu...">createIterator</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) {
<a name="l01650"></a>01650     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00149.html" title="Implementation of the MappingIterator-interface which is able to iterate over every value in a MultiD...">MultiDimMappingIterator&lt;Interpolator&gt;</a>(*<span class="keyword">this</span>, pos);
<a name="l01651"></a>01651   }
<a name="l01652"></a>01652 
<a name="l01653"></a>01653 
<a name="l01657"></a><a class="code" href="a00148.html#a85e1d7321d200c9505d25419dcfc4783">01657</a>   <a class="code" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> <a class="code" href="a00148.html#a85e1d7321d200c9505d25419dcfc4783" title="Returns the dimension this instance represents.">getDimension</a>() { <span class="keywordflow">return</span> <a class="code" href="a00148.html#ae9678ee0ab7315c97b0748f793acaaac" title="The dimension this instance represents.">myDimension</a>; }
<a name="l01658"></a>01658 };
<a name="l01659"></a>01659 
<a name="l01670"></a><a class="code" href="a00091.html">01670</a> <span class="keyword">class </span>MIXIM_API <a class="code" href="a00091.html" title="MappingIterator implementation for FilledUpMappings.">FilledUpMappingIterator</a> : <span class="keyword">public</span> <a class="code" href="a00149.html" title="Implementation of the MappingIterator-interface which is able to iterate over every value in a MultiD...">MultiDimMappingIterator</a>&lt;Linear&gt;{
<a name="l01671"></a>01671 <span class="keyword">public</span>:
<a name="l01672"></a>01672   <a class="code" href="a00091.html" title="MappingIterator implementation for FilledUpMappings.">FilledUpMappingIterator</a>(<a class="code" href="a00090.html" title="Takes a source ConstMapping with a domain A and a set of KeyEntries for a domain B and creates a clon...">FilledUpMapping</a>&amp; mapping);
<a name="l01673"></a>01673 
<a name="l01674"></a>01674   <a class="code" href="a00091.html" title="MappingIterator implementation for FilledUpMappings.">FilledUpMappingIterator</a>(<a class="code" href="a00090.html" title="Takes a source ConstMapping with a domain A and a set of KeyEntries for a domain B and creates a clon...">FilledUpMapping</a>&amp; mapping, <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos);
<a name="l01675"></a>01675 
<a name="l01676"></a><a class="code" href="a00091.html#aaf027c28adcc2465cbb5b911eaec7a8f">01676</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00091.html#aaf027c28adcc2465cbb5b911eaec7a8f" title="Changes the value of the function at the current position.">setValue</a>(argument_value_cref_t) {
<a name="l01677"></a>01677     assert(<span class="keyword">false</span>);
<a name="l01678"></a>01678   }
<a name="l01679"></a>01679 };
<a name="l01680"></a>01680 
<a name="l01694"></a><a class="code" href="a00090.html">01694</a> <span class="keyword">class </span>MIXIM_API <a class="code" href="a00090.html" title="Takes a source ConstMapping with a domain A and a set of KeyEntries for a domain B and creates a clon...">FilledUpMapping</a> : <span class="keyword">public</span> <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping</a>&lt;Linear&gt; {
<a name="l01695"></a>01695 <span class="comment">//--------members----------</span>
<a name="l01696"></a>01696 <span class="keyword">public</span>:
<a name="l01697"></a>01697   <span class="keyword">typedef</span> std::set&lt;argument_value_t&gt;   KeySet;
<a name="l01698"></a>01698   <span class="keyword">typedef</span> std::map&lt;Dimension, KeySet &gt; KeyMap;
<a name="l01699"></a>01699 <span class="keyword">protected</span>:
<a name="l01700"></a>01700   <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>*      fillRef;
<a name="l01701"></a>01701   <span class="keyword">const</span> KeyMap&amp; keys;
<a name="l01702"></a>01702 
<a name="l01703"></a>01703 <span class="keyword">private</span>:
<a name="l01706"></a>01706   <a class="code" href="a00090.html" title="Takes a source ConstMapping with a domain A and a set of KeyEntries for a domain B and creates a clon...">FilledUpMapping</a>(<span class="keyword">const</span> <a class="code" href="a00090.html" title="Takes a source ConstMapping with a domain A and a set of KeyEntries for a domain B and creates a clon...">FilledUpMapping</a>&amp;);
<a name="l01709"></a>01709   <a class="code" href="a00090.html" title="Takes a source ConstMapping with a domain A and a set of KeyEntries for a domain B and creates a clon...">FilledUpMapping</a>&amp; <a class="code" href="a00148.html#adf3d7e794c6e10795a4fa18d6e3b67d0" title="Copy operator which assures that the sub-mappings are deep copied instead of only their the pointers...">operator=</a>(<span class="keyword">const</span> <a class="code" href="a00090.html" title="Takes a source ConstMapping with a domain A and a set of KeyEntries for a domain B and creates a clon...">FilledUpMapping</a>&amp;);
<a name="l01710"></a>01710 
<a name="l01711"></a>01711 <span class="comment">//--------methods----------</span>
<a name="l01712"></a>01712 <span class="keyword">protected</span>:
<a name="l01713"></a>01713   <span class="keywordtype">void</span> fillRefIfNecessary() {
<a name="l01714"></a>01714     <span class="keyword">const</span> KeyMap::const_iterator itEnd = keys.end();
<a name="l01715"></a>01715     KeyMap::const_iterator       it    = keys.find(myDimension);
<a name="l01716"></a>01716 
<a name="l01717"></a>01717     <span class="keywordflow">if</span>(it == itEnd)
<a name="l01718"></a>01718       <span class="keywordflow">return</span>;
<a name="l01719"></a>01719 
<a name="l01720"></a>01720     fillRef = <a class="code" href="a00148.html#a1fbdfd6bd7d903fdd388556ead454461" title="Internal helper method which creates a new sub-mapping for this MultiDimMapping instance.">createSubSignal</a>();
<a name="l01721"></a>01721 
<a name="l01722"></a>01722     <span class="keyword">const</span> KeySet::const_iterator keyItEnd = it-&gt;second.end();
<a name="l01723"></a>01723     <span class="keywordflow">for</span> (KeySet::const_iterator keyIt = it-&gt;second.begin(); keyIt != keyItEnd; ++keyIt) {
<a name="l01724"></a>01724       entries.insert(entries.end(), std::make_pair(*keyIt, fillRef));
<a name="l01725"></a>01725     }
<a name="l01726"></a>01726   }
<a name="l01727"></a>01727 
<a name="l01728"></a>01728   <a class="code" href="a00090.html" title="Takes a source ConstMapping with a domain A and a set of KeyEntries for a domain B and creates a clon...">FilledUpMapping</a>(<span class="keyword">const</span> <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>&amp; myDims, <a class="code" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a> myDim, <span class="keyword">const</span> KeyMap&amp; rkeys):
<a name="l01729"></a>01729     <a class="code" href="a00148.html">MultiDimMapping&lt;Linear&gt;</a>(myDims, myDim), fillRef(0), keys(rkeys)
<a name="l01730"></a>01730   {
<a name="l01731"></a>01731     fillRefIfNecessary();
<a name="l01732"></a>01732   }
<a name="l01733"></a>01733 
<a name="l01734"></a><a class="code" href="a00090.html#a46a248189b439d4a682b8fb78e9c0fbd">01734</a>   <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* <a class="code" href="a00090.html#a46a248189b439d4a682b8fb78e9c0fbd" title="Internal helper method which creates a new sub-mapping for this MultiDimMapping instance.">createSubSignal</a>()<span class="keyword"> const</span>{
<a name="l01735"></a>01735     <span class="keyword">const</span> <a class="code" href="a00085.html" title="Specifies a dimension for mappings (like time, frequency, etc.)">Dimension</a>&amp; nextDim = *(--dimensions.find(myDimension));
<a name="l01736"></a>01736     <span class="keywordflow">if</span>(nextDim == <a class="code" href="a00085.html#a16cb1f186dd3f48d33a4aebe948001d7" title="Shortcut to the time Dimension, same as &#39;Dimension(&quot;time&quot;)&#39;, but spares the parsing of a string...">Dimension::time</a>)
<a name="l01737"></a>01737       <span class="keywordflow">return</span> <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping&lt;Linear&gt;::createSubSignal</a>();
<a name="l01738"></a>01738     <span class="keywordflow">else</span>
<a name="l01739"></a>01739       <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00090.html" title="Takes a source ConstMapping with a domain A and a set of KeyEntries for a domain B and creates a clon...">FilledUpMapping</a>(dimensions, nextDim, keys);
<a name="l01740"></a>01740   }
<a name="l01741"></a>01741 <span class="keyword">public</span>:
<a name="l01742"></a>01742   <a class="code" href="a00090.html" title="Takes a source ConstMapping with a domain A and a set of KeyEntries for a domain B and creates a clon...">FilledUpMapping</a>(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* source, <span class="keyword">const</span> <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>&amp; dims, <span class="keyword">const</span> KeyMap&amp; rkeys):
<a name="l01743"></a>01743     <a class="code" href="a00148.html" title="Implementation of the Mapping-interface which is able to represent arbitrary dimensional instances of...">MultiDimMapping</a>&lt;<a class="code" href="a00118.html" title="Given two iterators defining a range of key-value-pairs this class provides linear interpolation of t...">Linear</a>&gt;(dims), fillRef(0), keys(rkeys)
<a name="l01744"></a>01744   {
<a name="l01745"></a>01745     <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* it = source-&gt;<a class="code" href="a00058.html#a5ff3a15fe6d536fa7a26a3fe1ff1b274" title="Returns a pointer of a new Iterator which is able to iterate over this Mapping.">createConstIterator</a>();
<a name="l01746"></a>01746 
<a name="l01747"></a>01747     <span class="keywordflow">if</span>(it-&gt;<a class="code" href="a00059.html#a4a6348a453418da95978e570fec046fc" title="Returns true if the current position of the iterator is in range of the function.">inRange</a>()) {
<a name="l01748"></a>01748       fillRefIfNecessary();
<a name="l01749"></a>01749 
<a name="l01750"></a>01750       <span class="keywordflow">while</span>(it-&gt;<a class="code" href="a00059.html#a4a6348a453418da95978e570fec046fc" title="Returns true if the current position of the iterator is in range of the function.">inRange</a>()) {
<a name="l01751"></a>01751         <a class="code" href="a00136.html#a2a63bc33cabcddf8c0f5938afd2e3328" title="Appends the passed value at the passed position to the mapping. This method assumes that the passed p...">appendValue</a>(it-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>(), it-&gt;<a class="code" href="a00059.html#ad4419c259e747867f003d07d62d4259f" title="Returns the value of the Mapping at the current position.">getValue</a>());
<a name="l01752"></a>01752 
<a name="l01753"></a>01753         <span class="keywordflow">if</span>(!it-&gt;<a class="code" href="a00059.html#ad4bac7233c154b7086c6124d2e21be49" title="Returns true if the iterator has a next value it can iterate to on a call to &quot;next()&quot;.">hasNext</a>())
<a name="l01754"></a>01754           <span class="keywordflow">break</span>;
<a name="l01755"></a>01755         it-&gt;<a class="code" href="a00059.html#afdafa6870cd19b3d35674a7bc777585d" title="Iterates to the next position of the Mapping.">next</a>();
<a name="l01756"></a>01756       }
<a name="l01757"></a>01757     }
<a name="l01758"></a>01758     <span class="keyword">delete</span> it;
<a name="l01759"></a>01759   }
<a name="l01760"></a>01760 
<a name="l01761"></a>01761   <span class="keyword">virtual</span> ~<a class="code" href="a00090.html" title="Takes a source ConstMapping with a domain A and a set of KeyEntries for a domain B and creates a clon...">FilledUpMapping</a>(){
<a name="l01762"></a>01762     <span class="keywordflow">if</span>(fillRef != 0){
<a name="l01763"></a>01763       <span class="keyword">delete</span> fillRef;
<a name="l01764"></a>01764       entries.clear();
<a name="l01765"></a>01765     }
<a name="l01766"></a>01766   }
<a name="l01767"></a>01767 
<a name="l01768"></a>01768   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00136.html#a2a63bc33cabcddf8c0f5938afd2e3328" title="Appends the passed value at the passed position to the mapping. This method assumes that the passed p...">appendValue</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos, argument_value_cref_t value) {
<a name="l01769"></a>01769     <span class="keywordflow">if</span>(fillRef != 0) {
<a name="l01770"></a>01770       fillRef-&gt;appendValue(pos, value);
<a name="l01771"></a>01771       <span class="keywordflow">return</span>;
<a name="l01772"></a>01772     }
<a name="l01773"></a>01773     argument_value_cref_t           argVal = pos.<a class="code" href="a00013.html#a137a911de0281cbb519fe13727aa0813" title="Returns the value for the specified dimension.">getArgValue</a>(myDimension);
<a name="l01774"></a>01774     interpolator_map_type::iterator posIt  = entries.lower_bound(argVal);
<a name="l01775"></a>01775 
<a name="l01776"></a>01776     <span class="keywordflow">if</span>(posIt == entries.end() || (entries.key_comp()(argVal, posIt-&gt;first))) {
<a name="l01777"></a>01777       posIt = entries.insert(posIt, std::make_pair(argVal, <a class="code" href="a00148.html#a1fbdfd6bd7d903fdd388556ead454461" title="Internal helper method which creates a new sub-mapping for this MultiDimMapping instance.">createSubSignal</a>()));
<a name="l01778"></a>01778     }
<a name="l01779"></a>01779     posIt-&gt;second-&gt;appendValue(pos, value);
<a name="l01780"></a>01780   }
<a name="l01781"></a>01781 
<a name="l01782"></a><a class="code" href="a00090.html#a13d1a4a5fbf6e7a1915b010d63ffc4d0">01782</a>   <span class="keyword">virtual</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00090.html#a13d1a4a5fbf6e7a1915b010d63ffc4d0" title="Returns a pointer of a new Iterator which is able to iterate over the Mapping and can change the valu...">createIterator</a>() {
<a name="l01783"></a>01783     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00091.html" title="MappingIterator implementation for FilledUpMappings.">FilledUpMappingIterator</a>(*<span class="keyword">this</span>);
<a name="l01784"></a>01784   }
<a name="l01785"></a>01785 
<a name="l01786"></a><a class="code" href="a00090.html#ac05ee0f09361957877cde397b66b028b">01786</a>   <span class="keyword">virtual</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00090.html#ac05ee0f09361957877cde397b66b028b" title="Returns a pointer of a new Iterator which is able to iterate over the Mapping and can change the valu...">createIterator</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) {
<a name="l01787"></a>01787     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00091.html" title="MappingIterator implementation for FilledUpMappings.">FilledUpMappingIterator</a>(*<span class="keyword">this</span>, pos);
<a name="l01788"></a>01788   }
<a name="l01789"></a>01789 };
<a name="l01790"></a>01790 
<a name="l01797"></a><a class="code" href="a00138.html">01797</a> <span class="keyword">class </span>MIXIM_API <a class="code" href="a00138.html" title="Provides several utility methods for Mappings.">MappingUtils</a> {
<a name="l01798"></a>01798 <span class="keyword">public</span>:
<a name="l01799"></a>01799   <span class="keyword">typedef</span> std::list&lt;const ConstMapping*&gt; MappingBuffer;
<a name="l01800"></a>01800 
<a name="l01805"></a><a class="code" href="a00138.html#a3db893e8948a5af5fe947fb0740d86ca">01805</a>   <span class="keyword">const</span> <span class="keyword">static</span> Argument::mapped_type <a class="code" href="a00138.html#a3db893e8948a5af5fe947fb0740d86ca" title="The default value for findMin() functions if it does not find a minimum element.">cMinNotFound</a>;
<a name="l01810"></a><a class="code" href="a00138.html#a2a3f154e68d94b4b5a5ed580bb3e756f">01810</a>   <span class="keyword">const</span> <span class="keyword">static</span> Argument::mapped_type <a class="code" href="a00138.html#a2a3f154e68d94b4b5a5ed580bb3e756f" title="The default value for findMax() functions if it does not find a maximum element.">cMaxNotFound</a>;
<a name="l01811"></a>01811 
<a name="l01812"></a>01812 <span class="keyword">private</span>:
<a name="l01813"></a>01813   <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* createCompatibleMapping(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; src, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; dst);
<a name="l01814"></a>01814 
<a name="l01815"></a>01815   <span class="keyword">static</span> <span class="keywordtype">bool</span> iterateToNext(<a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* it1, <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* it2);
<a name="l01816"></a>01816 
<a name="l01817"></a>01817 <span class="keyword">public</span>:
<a name="l01818"></a>01818 
<a name="l01825"></a>01825   <span class="keyword">static</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* createMapping(<span class="keyword">const</span> <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>&amp; domain = <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>(<a class="code" href="a00085.html#a16cb1f186dd3f48d33a4aebe948001d7" title="Shortcut to the time Dimension, same as &#39;Dimension(&quot;time&quot;)&#39;, but spares the parsing of a string...">Dimension::time</a>),
<a name="l01826"></a>01826                   <a class="code" href="a00136.html#aa713c0cd84f74727888bef5b9e8b0643" title="Types of interpolation methods for mappings.">Mapping::InterpolationMethod</a> intpl = <a class="code" href="a00136.html#aa713c0cd84f74727888bef5b9e8b0643ac8a952576b8d13258ba0f3c0f1584f9b" title="interpolates linear with next lower and next upper entry constant before the first and after the last...">Mapping::LINEAR</a>);
<a name="l01827"></a>01827 
<a name="l01834"></a>01834   <span class="keyword">static</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* createMapping(Mapping::argument_value_cref_t outOfRangeValue,
<a name="l01835"></a>01835                   <span class="keyword">const</span> <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>&amp; domain = <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>(<a class="code" href="a00085.html#a16cb1f186dd3f48d33a4aebe948001d7" title="Shortcut to the time Dimension, same as &#39;Dimension(&quot;time&quot;)&#39;, but spares the parsing of a string...">Dimension::time</a>),
<a name="l01836"></a>01836                   <a class="code" href="a00136.html#aa713c0cd84f74727888bef5b9e8b0643" title="Types of interpolation methods for mappings.">Mapping::InterpolationMethod</a> intpl = <a class="code" href="a00136.html#aa713c0cd84f74727888bef5b9e8b0643ac8a952576b8d13258ba0f3c0f1584f9b" title="interpolates linear with next lower and next upper entry constant before the first and after the last...">Mapping::LINEAR</a>);
<a name="l01837"></a>01837 
<a name="l01838"></a>01838   <span class="keyword">template</span>&lt;<span class="keyword">class</span> Operator&gt;
<a name="l01839"></a>01839   <span class="keyword">static</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* applyElementWiseOperator(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2,
<a name="l01840"></a>01840                        <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; intvlStart,
<a name="l01841"></a>01841                        <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; intvlEnd,
<a name="l01842"></a>01842                        Operator op){
<a name="l01843"></a>01843 
<a name="l01844"></a>01844     <span class="keywordflow">return</span> 0;
<a name="l01845"></a>01845   }
<a name="l01846"></a>01846 
<a name="l01847"></a>01847   <span class="keyword">template</span>&lt;<span class="keyword">class</span> Operator&gt;
<a name="l01848"></a>01848   <span class="keyword">static</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* applyElementWiseOperator(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2, Operator op,
<a name="l01849"></a>01849                                            Mapping::argument_value_cref_t outOfRangeVal  = <a class="code" href="a00013.html#a8523627cdc70492e5e0935b9a3a78cc4" title="Zero value of a Argument value.">Argument::MappedZero</a>,
<a name="l01850"></a>01850                                            <span class="keywordtype">bool</span>                           contOutOfRange = <span class="keyword">true</span>) {
<a name="l01851"></a>01851 
<a name="l01852"></a>01852     <span class="keyword">using</span> std::operator&lt;&lt;;
<a name="l01853"></a>01853 
<a name="l01854"></a>01854     <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a> *<span class="keyword">const</span> f2Comp = createCompatibleMapping(f2, f1);
<a name="l01855"></a>01855     <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a> *<span class="keyword">const</span> f1Comp = createCompatibleMapping(f1, f2);
<a name="l01856"></a>01856 
<a name="l01857"></a>01857     <span class="keyword">const</span> <a class="code" href="a00086.html" title="Represents a set of dimensions which is used to define over which dimensions a mapping is defined (th...">DimensionSet</a>&amp; domain = f1Comp-&gt;<a class="code" href="a00058.html#acc1559cf5741bec3aa6422e94c5b9cce" title="Returns this Mappings domain as DimensionSet.">getDimensionSet</a>();
<a name="l01858"></a>01858     <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a> *<span class="keyword">const</span>      result = (contOutOfRange) ? <a class="code" href="a00138.html#a0c61c76ba04339162563339b23bf42e9" title="Returns an appropriate changeable Mapping with the specified domain and the specified interpolation m...">MappingUtils::createMapping</a>(domain) : <a class="code" href="a00138.html#a0c61c76ba04339162563339b23bf42e9" title="Returns an appropriate changeable Mapping with the specified domain and the specified interpolation m...">MappingUtils::createMapping</a>(outOfRangeVal, domain);
<a name="l01859"></a>01859 
<a name="l01860"></a>01860     <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a> *<span class="keyword">const</span> itF1       = f1Comp-&gt;<a class="code" href="a00058.html#a5ff3a15fe6d536fa7a26a3fe1ff1b274" title="Returns a pointer of a new Iterator which is able to iterate over this Mapping.">createConstIterator</a>();
<a name="l01861"></a>01861     <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a> *<span class="keyword">const</span> itF2       = f2Comp-&gt;<a class="code" href="a00058.html#a5ff3a15fe6d536fa7a26a3fe1ff1b274" title="Returns a pointer of a new Iterator which is able to iterate over this Mapping.">createConstIterator</a>();
<a name="l01862"></a>01862     <span class="keyword">const</span> <span class="keywordtype">bool</span>                  bF1InRange = itF1-&gt;<a class="code" href="a00059.html#a4a6348a453418da95978e570fec046fc" title="Returns true if the current position of the iterator is in range of the function.">inRange</a>();
<a name="l01863"></a>01863     <span class="keyword">const</span> <span class="keywordtype">bool</span>                  bF2InRange = itF2-&gt;<a class="code" href="a00059.html#a4a6348a453418da95978e570fec046fc" title="Returns true if the current position of the iterator is in range of the function.">inRange</a>();
<a name="l01864"></a>01864 
<a name="l01865"></a>01865     <span class="keywordflow">if</span>(!bF1InRange &amp;&amp; !bF2InRange){
<a name="l01866"></a>01866       <span class="keyword">delete</span> itF1;
<a name="l01867"></a>01867       <span class="keyword">delete</span> itF2;
<a name="l01868"></a>01868       <span class="keywordflow">return</span> result;
<a name="l01869"></a>01869     }
<a name="l01870"></a>01870 
<a name="l01871"></a>01871     <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* itRes = 0;
<a name="l01872"></a>01872 
<a name="l01873"></a>01873     <span class="keywordflow">if</span>(bF1InRange &amp;&amp; (!bF2InRange || itF1-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>() &lt; itF2-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>())){
<a name="l01874"></a>01874       itF2-&gt;<a class="code" href="a00059.html#ae3cdbe2115d0e87af0da549b675f2bf8" title="Lets the iterator point to the passed position.">jumpTo</a>(itF1-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>());
<a name="l01875"></a>01875     } <span class="keywordflow">else</span> {
<a name="l01876"></a>01876       itF1-&gt;<a class="code" href="a00059.html#ae3cdbe2115d0e87af0da549b675f2bf8" title="Lets the iterator point to the passed position.">jumpTo</a>(itF2-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>());
<a name="l01877"></a>01877     }
<a name="l01878"></a>01878 
<a name="l01879"></a>01879     itRes = result-&gt;<a class="code" href="a00136.html#ab78335a7a119893d1e04495f7f587ca3" title="Returns a pointer of a new Iterator which is able to iterate over the Mapping and can change it...">createIterator</a>(itF1-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>());
<a name="l01880"></a>01880 
<a name="l01881"></a>01881     <span class="keywordflow">while</span>(itF1-&gt;<a class="code" href="a00059.html#a4a6348a453418da95978e570fec046fc" title="Returns true if the current position of the iterator is in range of the function.">inRange</a>() || itF2-&gt;<a class="code" href="a00059.html#a4a6348a453418da95978e570fec046fc" title="Returns true if the current position of the iterator is in range of the function.">inRange</a>()) {
<a name="l01882"></a>01882       assert(itF1-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>().<a class="code" href="a00013.html#ac69b6722244626cdf4e0a006c9822cec" title="Returns true if the passed Argument points to the same position.">isSamePosition</a>(itF2-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>()));
<a name="l01883"></a>01883 
<a name="l01884"></a>01884       Mapping::argument_value_cref_t prod = op(itF1-&gt;<a class="code" href="a00059.html#ad4419c259e747867f003d07d62d4259f" title="Returns the value of the Mapping at the current position.">getValue</a>(), itF2-&gt;<a class="code" href="a00059.html#ad4419c259e747867f003d07d62d4259f" title="Returns the value of the Mapping at the current position.">getValue</a>());
<a name="l01885"></a>01885       <span class="comment">//result-&gt;setValue(itF1-&gt;getPosition(), prod);</span>
<a name="l01886"></a>01886       itRes-&gt;<a class="code" href="a00137.html#a68c80b10de257d7cfd68f49bfd6a2cbe" title="Changes the value of the Mapping at the current position.">setValue</a>(prod);
<a name="l01887"></a>01887 
<a name="l01888"></a>01888       <span class="keywordflow">if</span>(!iterateToNext(itF1, itF2))
<a name="l01889"></a>01889         <span class="keywordflow">break</span>;
<a name="l01890"></a>01890 
<a name="l01891"></a>01891       itRes-&gt;<a class="code" href="a00059.html#a607d741e2d841265851a85670f247c46" title="Iterates to the specified position. This method should be used if the new position is near the curren...">iterateTo</a>(itF1-&gt;<a class="code" href="a00059.html#a047e853613d5a19ff34526d0cff8fcf9" title="Returns the current position of the iterator.">getPosition</a>());
<a name="l01892"></a>01892     }
<a name="l01893"></a>01893 
<a name="l01894"></a>01894     <span class="keyword">delete</span> itF1;
<a name="l01895"></a>01895     <span class="keyword">delete</span> itF2;
<a name="l01896"></a>01896     <span class="keyword">delete</span> itRes;
<a name="l01897"></a>01897 
<a name="l01898"></a>01898     <span class="keywordflow">if</span> (&amp;f2 != f2Comp)
<a name="l01899"></a>01899       <span class="keyword">delete</span> (f2Comp);
<a name="l01900"></a>01900     <span class="keywordflow">if</span> (&amp;f1 != f1Comp)
<a name="l01901"></a>01901       <span class="keyword">delete</span> (f1Comp);
<a name="l01902"></a>01902 
<a name="l01903"></a>01903     <span class="keywordflow">return</span> result;
<a name="l01904"></a>01904   }
<a name="l01905"></a>01905 
<a name="l01906"></a>01906 
<a name="l01907"></a>01907 
<a name="l01917"></a>01917   <span class="keyword">static</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* multiply(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2);
<a name="l01918"></a>01918   <span class="keyword">static</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* add(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2);
<a name="l01919"></a>01919   <span class="keyword">static</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* subtract(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2);
<a name="l01920"></a>01920   <span class="keyword">static</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* divide(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2);
<a name="l01921"></a>01921 
<a name="l01922"></a>01922   <span class="keyword">static</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* multiply(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2, Mapping::argument_value_cref_t outOfRangeVal);
<a name="l01923"></a>01923   <span class="keyword">static</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* add(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2, Mapping::argument_value_cref_t outOfRangeVal);
<a name="l01924"></a>01924   <span class="keyword">static</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* subtract(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2, Mapping::argument_value_cref_t outOfRangeVal);
<a name="l01925"></a>01925   <span class="keyword">static</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* divide(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2, Mapping::argument_value_cref_t outOfRangeVal);
<a name="l01926"></a>01926 
<a name="l01935"></a>01935   <span class="keyword">static</span> Argument::mapped_type findMax(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; m, Argument::mapped_type_cref cRetNotFound = cMaxNotFound);
<a name="l01936"></a>01936 
<a name="l01953"></a>01953   <span class="keyword">static</span> Argument::mapped_type findMax(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; m, <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; min, <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; max, Argument::mapped_type_cref cRetNotFound = cMaxNotFound);
<a name="l01954"></a>01954 
<a name="l01963"></a>01963   <span class="keyword">static</span> Argument::mapped_type findMin(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; m, Argument::mapped_type_cref cRetNotFound = cMinNotFound);
<a name="l01964"></a>01964 
<a name="l01981"></a>01981   <span class="keyword">static</span> Argument::mapped_type findMin(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; m, <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; min, <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; max, Argument::mapped_type_cref cRetNotFound = cMinNotFound);
<a name="l01982"></a>01982 
<a name="l01983"></a>01983 
<a name="l01984"></a>01984   <span class="comment">/*</span>
<a name="l01985"></a>01985 <span class="comment">  static Mapping* multiply(ConstMapping&amp; f1, ConstMapping&amp; f2, const Argument&amp; from, const Argument&amp; to);</span>
<a name="l01986"></a>01986 <span class="comment">  static Mapping* add(ConstMapping&amp; f1, ConstMapping&amp; f2, const Argument&amp; from, const Argument&amp; to);</span>
<a name="l01987"></a>01987 <span class="comment">  static Mapping* subtract(ConstMapping&amp; f1, ConstMapping&amp; f2, const Argument&amp; from, const Argument&amp; to);</span>
<a name="l01988"></a>01988 <span class="comment">  static Mapping* divide(ConstMapping&amp; f1, ConstMapping&amp; f2, const Argument&amp; from, const Argument&amp; to);</span>
<a name="l01989"></a>01989 <span class="comment">  */</span>
<a name="l01990"></a>01990 
<a name="l01991"></a>01991 
<a name="l02012"></a>02012   <span class="keyword">static</span> <span class="keywordtype">void</span> addDiscontinuity(<a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* m,
<a name="l02013"></a>02013                  <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos, Argument::mapped_type_cref value,
<a name="l02014"></a>02014                  simtime_t_cref limitTime, Argument::mapped_type_cref limitValue);
<a name="l02015"></a>02015 
<a name="l02019"></a>02019   <span class="keyword">static</span> simtime_t pre(simtime_t_cref t);
<a name="l02020"></a>02020 
<a name="l02024"></a>02024   <span class="keyword">static</span> simtime_t post(simtime_t_cref t);
<a name="l02025"></a>02025 
<a name="l02029"></a>02029     <span class="keyword">static</span> simtime_t incNextPosition(simtime_t_cref t);
<a name="l02030"></a>02030 };
<a name="l02031"></a>02031 
<a name="l02032"></a>02032 
<a name="l02033"></a>02033 
<a name="l02040"></a><a class="code" href="a00050.html">02040</a> <span class="keyword">class </span>MIXIM_API <a class="code" href="a00050.html" title="Deletes its ConstMapping when this iterator is deleted.">ConcatConstMappingIterator</a> : <span class="keyword">public</span> <a class="code" href="a00023.html" title="This iterator takes another ConstMappingIterator and does just pipe every method to the passed ConstM...">FilteredConstMappingIterator</a>{
<a name="l02041"></a>02041 <span class="comment">//--------members----------</span>
<a name="l02042"></a>02042 <span class="keyword">protected</span>:
<a name="l02043"></a>02043   <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* baseMapping;
<a name="l02044"></a>02044 
<a name="l02045"></a>02045 <span class="keyword">private</span>:
<a name="l02048"></a>02048   <a class="code" href="a00050.html" title="Deletes its ConstMapping when this iterator is deleted.">ConcatConstMappingIterator</a>(<span class="keyword">const</span> <a class="code" href="a00050.html" title="Deletes its ConstMapping when this iterator is deleted.">ConcatConstMappingIterator</a>&amp;);
<a name="l02051"></a>02051   <a class="code" href="a00050.html" title="Deletes its ConstMapping when this iterator is deleted.">ConcatConstMappingIterator</a>&amp; <a class="code" href="a00023.html#addcff12ae1c2f69a3801ba93562a4633" title="Assignment operator is not allowed.">operator=</a>(<span class="keyword">const</span> <a class="code" href="a00050.html" title="Deletes its ConstMapping when this iterator is deleted.">ConcatConstMappingIterator</a>&amp;);
<a name="l02052"></a>02052 
<a name="l02053"></a>02053 <span class="keyword">public</span>:
<a name="l02054"></a>02054   <a class="code" href="a00050.html" title="Deletes its ConstMapping when this iterator is deleted.">ConcatConstMappingIterator</a>(<a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* baseMapping):
<a name="l02055"></a>02055     <a class="code" href="a00520.html#gaa645dfa599e41183c494290d0abba30f" title="Const version of the BaseFilteredIterator. Meant to be used for ConstMappingIterator instances...">FilteredConstMappingIterator</a>(baseMapping-&gt;<a class="code" href="a00058.html#a5ff3a15fe6d536fa7a26a3fe1ff1b274" title="Returns a pointer of a new Iterator which is able to iterate over this Mapping.">createConstIterator</a>()),
<a name="l02056"></a>02056     baseMapping(baseMapping) {}
<a name="l02057"></a>02057 
<a name="l02058"></a>02058   <a class="code" href="a00050.html" title="Deletes its ConstMapping when this iterator is deleted.">ConcatConstMappingIterator</a>(<a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* baseMapping, <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos):
<a name="l02059"></a>02059     <a class="code" href="a00520.html#gaa645dfa599e41183c494290d0abba30f" title="Const version of the BaseFilteredIterator. Meant to be used for ConstMappingIterator instances...">FilteredConstMappingIterator</a>(baseMapping-&gt;<a class="code" href="a00058.html#a5ff3a15fe6d536fa7a26a3fe1ff1b274" title="Returns a pointer of a new Iterator which is able to iterate over this Mapping.">createConstIterator</a>(pos)),
<a name="l02060"></a>02060     baseMapping(baseMapping) {}
<a name="l02061"></a>02061 
<a name="l02062"></a>02062   <span class="keyword">virtual</span> ~<a class="code" href="a00050.html" title="Deletes its ConstMapping when this iterator is deleted.">ConcatConstMappingIterator</a>() {
<a name="l02063"></a>02063     <span class="keywordflow">if</span> (baseMapping)
<a name="l02064"></a>02064       <span class="keyword">delete</span> baseMapping;
<a name="l02065"></a>02065   }
<a name="l02066"></a>02066 };
<a name="l02067"></a>02067 
<a name="l02075"></a>02075 <span class="keyword">template</span>&lt;<span class="keyword">class</span> Operator&gt;
<a name="l02076"></a><a class="code" href="a00049.html">02076</a> <span class="keyword">class </span><a class="code" href="a00049.html" title="Defines it values by concatenating one or more Mappings to a reference Mapping.">ConcatConstMapping</a>: <span class="keyword">public</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a> {
<a name="l02077"></a>02077 <span class="keyword">protected</span>:
<a name="l02078"></a>02078   <span class="keyword">typedef</span> std::pair&lt;Dimension, Argument::const_iterator&gt; DimIteratorPair;
<a name="l02079"></a>02079   <span class="keyword">typedef</span> std::list&lt;ConstMapping*&gt; MappingSet;
<a name="l02080"></a>02080 
<a name="l02081"></a>02081   MappingSet            mappings;
<a name="l02082"></a>02082   <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>*         refMapping;
<a name="l02083"></a>02083 
<a name="l02084"></a>02084   <span class="keywordtype">bool</span>                  continueOutOfRange;
<a name="l02085"></a>02085   Argument::mapped_type oorValue;
<a name="l02086"></a>02086   Operator              op;
<a name="l02087"></a>02087 
<a name="l02088"></a>02088 <span class="keyword">public</span>:
<a name="l02089"></a>02089   <a class="code" href="a00049.html" title="Defines it values by concatenating one or more Mappings to a reference Mapping.">ConcatConstMapping</a>(<span class="keyword">const</span> <a class="code" href="a00049.html" title="Defines it values by concatenating one or more Mappings to a reference Mapping.">ConcatConstMapping</a>&amp; o)
<a name="l02090"></a>02090     : <a class="code" href="a00058.html#a7cfc5de32a0d03abfeb9b77fdcf7a413" title="Initializes the ConstMapping with a the time dimension as domain.">ConstMapping</a>(o)
<a name="l02091"></a>02091     , mappings(o.mappings)
<a name="l02092"></a>02092     , refMapping(NULL)
<a name="l02093"></a>02093     , continueOutOfRange(o.continueOutOfRange)
<a name="l02094"></a>02094     , oorValue(o.oorValue)
<a name="l02095"></a>02095     , op()
<a name="l02096"></a>02096   {}
<a name="l02097"></a>02097 
<a name="l02104"></a><a class="code" href="a00049.html#ab93320011f9c96397d1c4e116d2e1525">02104</a>   <a class="code" href="a00049.html" title="Defines it values by concatenating one or more Mappings to a reference Mapping.">ConcatConstMapping</a>&amp; <a class="code" href="a00049.html#ab93320011f9c96397d1c4e116d2e1525" title="ConcatConstMapping assignment operator.">operator=</a>(<span class="keyword">const</span> <a class="code" href="a00049.html" title="Defines it values by concatenating one or more Mappings to a reference Mapping.">ConcatConstMapping</a>&amp; copy)
<a name="l02105"></a>02105   {
<a name="l02106"></a>02106     <a class="code" href="a00049.html" title="Defines it values by concatenating one or more Mappings to a reference Mapping.">ConcatConstMapping</a> tmp(copy); <span class="comment">// All resource all allocation happens here.</span>
<a name="l02107"></a>02107                                     <span class="comment">// If this fails the copy will throw an exception</span>
<a name="l02108"></a>02108                                     <span class="comment">// and &#39;this&#39; object is unaffected by the exception.</span>
<a name="l02109"></a>02109     <a class="code" href="a00049.html#a6622816a1d58aa2cf1bdc1f97df22c7c" title="Swaps data with another ConcatConstMapping.">swap</a>(tmp);
<a name="l02110"></a>02110     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l02111"></a>02111   }
<a name="l02112"></a>02112 
<a name="l02121"></a><a class="code" href="a00049.html#a6622816a1d58aa2cf1bdc1f97df22c7c">02121</a>   <span class="keywordtype">void</span> <a class="code" href="a00049.html#a6622816a1d58aa2cf1bdc1f97df22c7c" title="Swaps data with another ConcatConstMapping.">swap</a>(<a class="code" href="a00049.html" title="Defines it values by concatenating one or more Mappings to a reference Mapping.">ConcatConstMapping</a>&amp; s)
<a name="l02122"></a>02122   {
<a name="l02123"></a>02123     <a class="code" href="a00049.html#a6622816a1d58aa2cf1bdc1f97df22c7c" title="Swaps data with another ConcatConstMapping.">ConstMapping::swap</a>(s); <span class="comment">// swap the base class members</span>
<a name="l02124"></a>02124     <span class="comment">/* Swap all D members */</span>
<a name="l02125"></a>02125     <a class="code" href="a00049.html#a6622816a1d58aa2cf1bdc1f97df22c7c" title="Swaps data with another ConcatConstMapping.">std::swap</a>(mappings,           s.mappings);
<a name="l02126"></a>02126     <a class="code" href="a00049.html#a6622816a1d58aa2cf1bdc1f97df22c7c" title="Swaps data with another ConcatConstMapping.">std::swap</a>(refMapping,         s.refMapping);
<a name="l02127"></a>02127     <a class="code" href="a00049.html#a6622816a1d58aa2cf1bdc1f97df22c7c" title="Swaps data with another ConcatConstMapping.">std::swap</a>(continueOutOfRange, s.continueOutOfRange);
<a name="l02128"></a>02128     <a class="code" href="a00049.html#a6622816a1d58aa2cf1bdc1f97df22c7c" title="Swaps data with another ConcatConstMapping.">std::swap</a>(oorValue,           s.oorValue);
<a name="l02129"></a>02129     <a class="code" href="a00049.html#a6622816a1d58aa2cf1bdc1f97df22c7c" title="Swaps data with another ConcatConstMapping.">std::swap</a>(op,                 s.op);
<a name="l02130"></a>02130   }
<a name="l02131"></a>02131 
<a name="l02132"></a>02132 <span class="keyword">public</span>:
<a name="l02137"></a>02137   <span class="keyword">template</span>&lt;<span class="keyword">class</span> Iterator&gt;
<a name="l02138"></a><a class="code" href="a00049.html#abfce216332c75a11be1d8ef96dadac18">02138</a>   <a class="code" href="a00049.html" title="Defines it values by concatenating one or more Mappings to a reference Mapping.">ConcatConstMapping</a>(<a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* refMapping,
<a name="l02139"></a>02139                      Iterator first, Iterator last,
<a name="l02140"></a>02140                      <span class="keywordtype">bool</span> continueOutOfRange = <span class="keyword">true</span>,
<a name="l02141"></a>02141                      Argument::mapped_type_cref oorValue = <a class="code" href="a00013.html#a8523627cdc70492e5e0935b9a3a78cc4" title="Zero value of a Argument value.">Argument::MappedZero</a>,
<a name="l02142"></a>02142                      Operator op = Operator()):
<a name="l02143"></a>02143     <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>(refMapping-&gt;<a class="code" href="a00058.html#acc1559cf5741bec3aa6422e94c5b9cce" title="Returns this Mappings domain as DimensionSet.">getDimensionSet</a>()),
<a name="l02144"></a>02144     mappings(),
<a name="l02145"></a>02145     refMapping(refMapping),
<a name="l02146"></a>02146     continueOutOfRange(continueOutOfRange),
<a name="l02147"></a>02147     oorValue(oorValue),
<a name="l02148"></a>02148     op(op)
<a name="l02149"></a>02149   {
<a name="l02150"></a>02150     <span class="keywordflow">while</span>(first != last) {
<a name="l02151"></a>02151       mappings.push_back(*first);
<a name="l02152"></a>02152       ++first;
<a name="l02153"></a>02153     }
<a name="l02154"></a>02154   }
<a name="l02155"></a>02155 
<a name="l02160"></a><a class="code" href="a00049.html#ae380dac709f74ae64e14c12eb978c46f">02160</a>   <a class="code" href="a00049.html" title="Defines it values by concatenating one or more Mappings to a reference Mapping.">ConcatConstMapping</a>(<a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* refMapping, <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* other,
<a name="l02161"></a>02161                      <span class="keywordtype">bool</span> continueOutOfRange = <span class="keyword">true</span>,
<a name="l02162"></a>02162                      Argument::mapped_type_cref oorValue = <a class="code" href="a00013.html#a8523627cdc70492e5e0935b9a3a78cc4" title="Zero value of a Argument value.">Argument::MappedZero</a>,
<a name="l02163"></a>02163                      Operator op = Operator()):
<a name="l02164"></a>02164     <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>(refMapping-&gt;<a class="code" href="a00058.html#acc1559cf5741bec3aa6422e94c5b9cce" title="Returns this Mappings domain as DimensionSet.">getDimensionSet</a>()),
<a name="l02165"></a>02165     mappings(),
<a name="l02166"></a>02166     refMapping(refMapping),
<a name="l02167"></a>02167     continueOutOfRange(continueOutOfRange),
<a name="l02168"></a>02168     oorValue(oorValue),
<a name="l02169"></a>02169     op(op)
<a name="l02170"></a>02170   {
<a name="l02171"></a>02171     mappings.push_back(other);
<a name="l02172"></a>02172   }
<a name="l02173"></a>02173 
<a name="l02174"></a>02174   <span class="keyword">virtual</span> ~<a class="code" href="a00049.html" title="Defines it values by concatenating one or more Mappings to a reference Mapping.">ConcatConstMapping</a>() {}
<a name="l02175"></a>02175 
<a name="l02180"></a><a class="code" href="a00049.html#ad9e4caf92010d92e76ed86a597e3399f">02180</a>   <span class="keywordtype">void</span> <a class="code" href="a00049.html#ad9e4caf92010d92e76ed86a597e3399f" title="Adds another Mapping to the list of Mappings to concatenate.">addMapping</a>(<a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* m) {
<a name="l02181"></a>02181     mappings.push_back(m);
<a name="l02182"></a>02182   }
<a name="l02183"></a>02183 
<a name="l02184"></a><a class="code" href="a00049.html#a28448679df346f8baf0f889bc0ab522a">02184</a>   <span class="keyword">virtual</span> Argument::mapped_type <a class="code" href="a00049.html#a28448679df346f8baf0f889bc0ab522a" title="Returns the value of this Mapping at the position specified by the passed Argument.">getValue</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos)<span class="keyword"> const </span>{
<a name="l02185"></a>02185     <span class="keyword">const</span> MappingSet::const_iterator itEnd = mappings.end();
<a name="l02186"></a>02186     Argument::mapped_type            res   = refMapping-&gt;<a class="code" href="a00058.html#afabbd15bb8f50e45901f99633d0a47c9" title="Returns the value of this Mapping at the position specified by the passed Argument.">getValue</a>(pos);
<a name="l02187"></a>02187 
<a name="l02188"></a>02188     <span class="keywordflow">for</span> (MappingSet::const_iterator it = mappings.begin(); it != itEnd; ++it) {
<a name="l02189"></a>02189       res = op(res, (*it)-&gt;getValue(pos));
<a name="l02190"></a>02190     }
<a name="l02191"></a>02191 
<a name="l02192"></a>02192     <span class="keywordflow">return</span> res;
<a name="l02193"></a>02193   }
<a name="l02194"></a>02194 
<a name="l02198"></a><a class="code" href="a00049.html#a575967e48547622110a29a7b90f3c71a">02198</a>   <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* <a class="code" href="a00049.html#a575967e48547622110a29a7b90f3c71a" title="Returns the concatenated Mapping.">createConcatenatedMapping</a>()<span class="keyword"> const </span>{
<a name="l02199"></a>02199     assert(!mappings.empty());
<a name="l02200"></a>02200 
<a name="l02201"></a>02201     MappingSet::const_iterator       it    = mappings.begin();
<a name="l02202"></a>02202     <span class="keyword">const</span> MappingSet::const_iterator itEnd = mappings.end();
<a name="l02203"></a>02203 
<a name="l02204"></a>02204     <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* result = MappingUtils::applyElementWiseOperator(*refMapping, **it, op,
<a name="l02205"></a>02205                                                              oorValue, continueOutOfRange);
<a name="l02206"></a>02206 
<a name="l02207"></a>02207     <span class="keywordflow">while</span>(++it != itEnd) {
<a name="l02208"></a>02208       <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* buf = result;
<a name="l02209"></a>02209       result = MappingUtils::applyElementWiseOperator(*buf, **it, op,
<a name="l02210"></a>02210                                                       oorValue, continueOutOfRange);
<a name="l02211"></a>02211       <span class="keyword">delete</span> buf;
<a name="l02212"></a>02212     }
<a name="l02213"></a>02213 
<a name="l02214"></a>02214     <span class="keywordflow">return</span> result;
<a name="l02215"></a>02215   }
<a name="l02216"></a>02216 
<a name="l02217"></a><a class="code" href="a00049.html#a417cebabd88daa682ea0f3cae877eae2">02217</a>   <span class="keyword">virtual</span> <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* <a class="code" href="a00049.html#a417cebabd88daa682ea0f3cae877eae2" title="Returns a pointer of a new Iterator which is able to iterate over this Mapping.">createConstIterator</a>()<span class="keyword"> const </span>{
<a name="l02218"></a>02218     <span class="keywordflow">if</span>(mappings.empty()) {
<a name="l02219"></a>02219       <span class="keywordflow">return</span> refMapping-&gt;<a class="code" href="a00058.html#a5ff3a15fe6d536fa7a26a3fe1ff1b274" title="Returns a pointer of a new Iterator which is able to iterate over this Mapping.">createConstIterator</a>();
<a name="l02220"></a>02220     }
<a name="l02221"></a>02221     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00050.html" title="Deletes its ConstMapping when this iterator is deleted.">ConcatConstMappingIterator</a>(<a class="code" href="a00049.html#a575967e48547622110a29a7b90f3c71a" title="Returns the concatenated Mapping.">createConcatenatedMapping</a>());
<a name="l02222"></a>02222   }
<a name="l02223"></a>02223 
<a name="l02224"></a><a class="code" href="a00049.html#a738035f30d7c365838469aa3eb7e7381">02224</a>   <span class="keyword">virtual</span> <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* <a class="code" href="a00049.html#a738035f30d7c365838469aa3eb7e7381" title="Returns a pointer of a new Iterator which is able to iterate over the function. The iterator starts a...">createConstIterator</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos)<span class="keyword"> const </span>{
<a name="l02225"></a>02225     <span class="keywordflow">if</span>(mappings.empty()) {
<a name="l02226"></a>02226       <span class="keywordflow">return</span> refMapping-&gt;<a class="code" href="a00058.html#a5ff3a15fe6d536fa7a26a3fe1ff1b274" title="Returns a pointer of a new Iterator which is able to iterate over this Mapping.">createConstIterator</a>(pos);
<a name="l02227"></a>02227     }
<a name="l02228"></a>02228     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00050.html" title="Deletes its ConstMapping when this iterator is deleted.">ConcatConstMappingIterator</a>(<a class="code" href="a00049.html#a575967e48547622110a29a7b90f3c71a" title="Returns the concatenated Mapping.">createConcatenatedMapping</a>(), pos);
<a name="l02229"></a>02229   }
<a name="l02230"></a>02230 
<a name="l02231"></a><a class="code" href="a00049.html#ad8c0293ec56947b986802fcb636e42b7">02231</a>   <span class="keyword">virtual</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* <a class="code" href="a00049.html#ad8c0293ec56947b986802fcb636e42b7" title="returns a deep copy of this mapping instance.">constClone</a>()<span class="keyword"> const </span>{
<a name="l02232"></a>02232     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00049.html" title="Defines it values by concatenating one or more Mappings to a reference Mapping.">ConcatConstMapping</a>(*<span class="keyword">this</span>);
<a name="l02233"></a>02233   }
<a name="l02234"></a>02234 
<a name="l02238"></a><a class="code" href="a00049.html#abcd3a9507ddf2e6e227fb0682f736b9a">02238</a>   <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* <a class="code" href="a00049.html#abcd3a9507ddf2e6e227fb0682f736b9a" title="Returns the pointer to the reference mapping.">getRefMapping</a>() {
<a name="l02239"></a>02239     <span class="keywordflow">return</span> refMapping;
<a name="l02240"></a>02240   }
<a name="l02241"></a>02241 };
<a name="l02242"></a>02242 
<a name="l02250"></a>02250 <span class="keyword">template</span>&lt;<span class="keyword">class</span> Base, <span class="keyword">class</span> Iterator&gt;
<a name="l02251"></a><a class="code" href="a00021.html">02251</a> <span class="keyword">class </span><a class="code" href="a00021.html" title="Common base for a Const- and NonConst-Iterator for a DelayedMapping.">BaseDelayedIterator</a>: <span class="keyword">public</span> Base {
<a name="l02252"></a>02252 <span class="keyword">protected</span>:
<a name="l02253"></a>02253   simtime_t delay;
<a name="l02254"></a>02254 
<a name="l02255"></a>02255   <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> position;
<a name="l02256"></a>02256   <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> nextPosition;
<a name="l02257"></a>02257 <span class="keyword">protected</span>:
<a name="l02258"></a>02258   <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> undelayPosition(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos)<span class="keyword"> const</span>{
<a name="l02259"></a>02259     <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> res(pos);
<a name="l02260"></a>02260     res.<a class="code" href="a00013.html#a8087982f050bdc61d787b128ca9ac8f9" title="Changes the time value of this argument.">setTime</a>(res.<a class="code" href="a00013.html#a2ecb3b041b5b8721d6767531e4ac792a" title="Returns the time value of this argument.">getTime</a>() - delay);
<a name="l02261"></a>02261     <span class="keywordflow">return</span> res;
<a name="l02262"></a>02262   }
<a name="l02263"></a>02263 
<a name="l02264"></a>02264   <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> delayPosition(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos)<span class="keyword"> const </span>{
<a name="l02265"></a>02265     <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> res(pos);
<a name="l02266"></a>02266       res.<a class="code" href="a00013.html#a8087982f050bdc61d787b128ca9ac8f9" title="Changes the time value of this argument.">setTime</a>(res.<a class="code" href="a00013.html#a2ecb3b041b5b8721d6767531e4ac792a" title="Returns the time value of this argument.">getTime</a>() + delay);
<a name="l02267"></a>02267       <span class="keywordflow">return</span> res;
<a name="l02268"></a>02268   }
<a name="l02269"></a>02269 
<a name="l02270"></a>02270   <span class="keywordtype">void</span> updatePosition() {
<a name="l02271"></a>02271     nextPosition = delayPosition(this-&gt;origIterator-&gt;getNextPosition());
<a name="l02272"></a>02272     position = delayPosition(this-&gt;origIterator-&gt;getPosition());
<a name="l02273"></a>02273   }
<a name="l02274"></a>02274 
<a name="l02275"></a>02275 <span class="keyword">public</span>:
<a name="l02276"></a>02276   <a class="code" href="a00021.html" title="Common base for a Const- and NonConst-Iterator for a DelayedMapping.">BaseDelayedIterator</a>(Iterator* it, simtime_t_cref delay):
<a name="l02277"></a>02277     Base(it), delay(delay), position(), nextPosition() {
<a name="l02278"></a>02278 
<a name="l02279"></a>02279     updatePosition();
<a name="l02280"></a>02280   }
<a name="l02281"></a>02281 
<a name="l02282"></a>02282   <span class="keyword">virtual</span> ~<a class="code" href="a00021.html" title="Common base for a Const- and NonConst-Iterator for a DelayedMapping.">BaseDelayedIterator</a>() {}
<a name="l02283"></a>02283 
<a name="l02284"></a>02284   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; getNextPosition()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> nextPosition; }
<a name="l02285"></a>02285 
<a name="l02286"></a>02286   <span class="keyword">virtual</span> <span class="keywordtype">void</span> jumpTo(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) {
<a name="l02287"></a>02287     this-&gt;origIterator-&gt;jumpTo(undelayPosition(pos));
<a name="l02288"></a>02288     updatePosition();
<a name="l02289"></a>02289   }
<a name="l02290"></a>02290 
<a name="l02291"></a>02291   <span class="keyword">virtual</span> <span class="keywordtype">void</span> jumpToBegin() {
<a name="l02292"></a>02292     this-&gt;origIterator-&gt;jumpToBegin();
<a name="l02293"></a>02293     updatePosition();
<a name="l02294"></a>02294   }
<a name="l02295"></a>02295 
<a name="l02296"></a>02296   <span class="keyword">virtual</span> <span class="keywordtype">void</span> iterateTo(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) {
<a name="l02297"></a>02297     this-&gt;origIterator-&gt;iterateTo(undelayPosition(pos));
<a name="l02298"></a>02298     updatePosition();
<a name="l02299"></a>02299   }
<a name="l02300"></a>02300 
<a name="l02301"></a>02301   <span class="keyword">virtual</span> <span class="keywordtype">void</span> next() {
<a name="l02302"></a>02302     this-&gt;origIterator-&gt;next();
<a name="l02303"></a>02303     updatePosition();
<a name="l02304"></a>02304   }
<a name="l02305"></a>02305 
<a name="l02306"></a>02306   <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; getPosition()<span class="keyword"> const </span>{
<a name="l02307"></a>02307     <span class="keywordflow">return</span> position;
<a name="l02308"></a>02308   }
<a name="l02309"></a>02309 };
<a name="l02310"></a>02310 
<a name="l02318"></a><a class="code" href="a00520.html#ga65c3da57807297c8c20a24d18e142051">02318</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Common base for a Const- and NonConst-Iterator for a DelayedMapping.">BaseDelayedIterator&lt;FilteredConstMappingIterator, ConstMappingIterator&gt;</a> <a class="code" href="a00520.html#ga65c3da57807297c8c20a24d18e142051" title="ConstIterator for a ConstDelayedMapping.">ConstDelayedMappingIterator</a>;
<a name="l02319"></a>02319 
<a name="l02327"></a><a class="code" href="a00520.html#gaf6d7bb3c43fe0bda97133e548ce327c2">02327</a> <span class="keyword">typedef</span> <a class="code" href="a00021.html" title="Common base for a Const- and NonConst-Iterator for a DelayedMapping.">BaseDelayedIterator&lt;FilteredMappingIterator, MappingIterator&gt;</a> <a class="code" href="a00520.html#gaf6d7bb3c43fe0bda97133e548ce327c2" title="Iterator for a DelayedMapping.">DelayedMappingIterator</a>;
<a name="l02328"></a>02328 
<a name="l02336"></a>02336 <span class="keyword">template</span>&lt;<span class="keyword">class</span> Base&gt;
<a name="l02337"></a><a class="code" href="a00022.html">02337</a> <span class="keyword">class </span><a class="code" href="a00022.html" title="Common base for Const- and NonConst-DelayedMapping.">BaseDelayedMapping</a>: <span class="keyword">public</span> Base {
<a name="l02338"></a>02338 <span class="keyword">protected</span>:
<a name="l02339"></a>02339   Base* mapping;
<a name="l02340"></a>02340   simtime_t delay;
<a name="l02341"></a>02341 
<a name="l02342"></a>02342 <span class="keyword">protected</span>:
<a name="l02343"></a>02343   <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> delayPosition(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos)<span class="keyword"> const </span>{
<a name="l02344"></a>02344     <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a> res(pos);
<a name="l02345"></a>02345     res.<a class="code" href="a00013.html#a8087982f050bdc61d787b128ca9ac8f9" title="Changes the time value of this argument.">setTime</a>(res.<a class="code" href="a00013.html#a2ecb3b041b5b8721d6767531e4ac792a" title="Returns the time value of this argument.">getTime</a>() - delay);
<a name="l02346"></a>02346     <span class="keywordflow">return</span> res;
<a name="l02347"></a>02347   }
<a name="l02348"></a>02348 
<a name="l02349"></a>02349 <span class="keyword">public</span>:
<a name="l02350"></a>02350   <a class="code" href="a00022.html" title="Common base for Const- and NonConst-DelayedMapping.">BaseDelayedMapping</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Common base for Const- and NonConst-DelayedMapping.">BaseDelayedMapping</a>&amp; o):
<a name="l02351"></a>02351     Base(o), mapping(o.mapping), delay(o.delay) {}
<a name="l02352"></a>02352 
<a name="l02359"></a><a class="code" href="a00022.html#a05b473ea4a0ab58701a700ec32aeea08">02359</a>   <a class="code" href="a00022.html" title="Common base for Const- and NonConst-DelayedMapping.">BaseDelayedMapping</a>&amp; <a class="code" href="a00022.html#a05b473ea4a0ab58701a700ec32aeea08" title="BaseDelayedMapping assignment operator.">operator=</a>(<span class="keyword">const</span> <a class="code" href="a00022.html" title="Common base for Const- and NonConst-DelayedMapping.">BaseDelayedMapping</a>&amp; copy)
<a name="l02360"></a>02360   {
<a name="l02361"></a>02361     <a class="code" href="a00022.html" title="Common base for Const- and NonConst-DelayedMapping.">BaseDelayedMapping</a> tmp(copy); <span class="comment">// All resource all allocation happens here.</span>
<a name="l02362"></a>02362                                     <span class="comment">// If this fails the copy will throw an exception</span>
<a name="l02363"></a>02363                                     <span class="comment">// and &#39;this&#39; object is unaffected by the exception.</span>
<a name="l02364"></a>02364     <a class="code" href="a00022.html#a3a7a7f787c13e1525e291a59051b63fa" title="Swaps data with another BaseDelayedMapping.">swap</a>(tmp);
<a name="l02365"></a>02365     <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l02366"></a>02366   }
<a name="l02367"></a>02367 
<a name="l02376"></a><a class="code" href="a00022.html#a3a7a7f787c13e1525e291a59051b63fa">02376</a>   <span class="keywordtype">void</span> <a class="code" href="a00022.html#a3a7a7f787c13e1525e291a59051b63fa" title="Swaps data with another BaseDelayedMapping.">swap</a>(<a class="code" href="a00022.html" title="Common base for Const- and NonConst-DelayedMapping.">BaseDelayedMapping</a>&amp; s)
<a name="l02377"></a>02377   {
<a name="l02378"></a>02378     <a class="code" href="a00022.html#a3a7a7f787c13e1525e291a59051b63fa" title="Swaps data with another BaseDelayedMapping.">Base::swap</a>(s); <span class="comment">// swap the base class members</span>
<a name="l02379"></a>02379     <span class="comment">/* Swap all D members */</span>
<a name="l02380"></a>02380     <a class="code" href="a00022.html#a3a7a7f787c13e1525e291a59051b63fa" title="Swaps data with another BaseDelayedMapping.">std::swap</a>(mapping, s.mapping);
<a name="l02381"></a>02381     <a class="code" href="a00022.html#a3a7a7f787c13e1525e291a59051b63fa" title="Swaps data with another BaseDelayedMapping.">std::swap</a>(delay,   s.delay);
<a name="l02382"></a>02382   }
<a name="l02383"></a>02383 
<a name="l02384"></a>02384 <span class="keyword">public</span>:
<a name="l02385"></a>02385   <a class="code" href="a00022.html" title="Common base for Const- and NonConst-DelayedMapping.">BaseDelayedMapping</a>(Base* mapping, simtime_t_cref delay):
<a name="l02386"></a>02386     Base(mapping-&gt;getDimensionSet()), mapping(mapping), delay(delay) {}
<a name="l02387"></a>02387 
<a name="l02388"></a>02388   <span class="keyword">virtual</span> ~<a class="code" href="a00022.html" title="Common base for Const- and NonConst-DelayedMapping.">BaseDelayedMapping</a>() {}
<a name="l02389"></a>02389 
<a name="l02390"></a>02390   <span class="keyword">virtual</span> <span class="keyword">typename</span> Base::argument_value_t getValue(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos)<span class="keyword"> const </span>{
<a name="l02391"></a>02391     <span class="keywordflow">return</span> mapping-&gt;getValue(delayPosition(pos));
<a name="l02392"></a>02392   }
<a name="l02393"></a>02393 
<a name="l02394"></a>02394   <span class="keyword">virtual</span> <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* createConstIterator()<span class="keyword"> const </span>{
<a name="l02395"></a>02395     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00520.html#ga65c3da57807297c8c20a24d18e142051" title="ConstIterator for a ConstDelayedMapping.">ConstDelayedMappingIterator</a>(mapping-&gt;createConstIterator(), delay);
<a name="l02396"></a>02396   }
<a name="l02397"></a>02397 
<a name="l02398"></a>02398   <span class="keyword">virtual</span> <a class="code" href="a00059.html" title="Defines an const iterator for a ConstMapping which is able to iterate over the Mapping.">ConstMappingIterator</a>* createConstIterator(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos)<span class="keyword"> const </span>{
<a name="l02399"></a>02399     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00520.html#ga65c3da57807297c8c20a24d18e142051" title="ConstIterator for a ConstDelayedMapping.">ConstDelayedMappingIterator</a>(mapping-&gt;createConstIterator(delayPosition(pos)), delay);
<a name="l02400"></a>02400   }
<a name="l02401"></a>02401 
<a name="l02405"></a><a class="code" href="a00022.html#a667349faa339199cee8e4578ceefa741">02405</a>   <span class="keyword">virtual</span> simtime_t_cref <a class="code" href="a00022.html#a667349faa339199cee8e4578ceefa741" title="Returns the delay used by this mapping.">getDelay</a>()<span class="keyword"> const </span>{
<a name="l02406"></a>02406     <span class="keywordflow">return</span> delay;
<a name="l02407"></a>02407   }
<a name="l02408"></a>02408 
<a name="l02412"></a><a class="code" href="a00022.html#a8706c7b3dfda9f2ac159a3ddc0938632">02412</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00022.html#a8706c7b3dfda9f2ac159a3ddc0938632" title="Changes the delay to the passed value.">delayMapping</a>(simtime_t_cref d) {
<a name="l02413"></a>02413     delay = d;
<a name="l02414"></a>02414   }
<a name="l02415"></a>02415 };
<a name="l02416"></a>02416 
<a name="l02426"></a><a class="code" href="a00056.html">02426</a> <span class="keyword">class </span>MIXIM_API <a class="code" href="a00056.html" title="Moves another ConstMapping in its time dimension.">ConstDelayedMapping</a>: <span class="keyword">public</span> <a class="code" href="a00022.html" title="Common base for Const- and NonConst-DelayedMapping.">BaseDelayedMapping</a>&lt;const ConstMapping&gt; {
<a name="l02427"></a>02427 <span class="keyword">public</span>:
<a name="l02428"></a>02428   <a class="code" href="a00056.html" title="Moves another ConstMapping in its time dimension.">ConstDelayedMapping</a>(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* mapping, simtime_t_cref delay):
<a name="l02429"></a>02429     <a class="code" href="a00022.html">BaseDelayedMapping&lt;const ConstMapping&gt;</a>(mapping, delay) {}
<a name="l02430"></a>02430 
<a name="l02431"></a>02431   <span class="keyword">virtual</span> ~<a class="code" href="a00056.html" title="Moves another ConstMapping in its time dimension.">ConstDelayedMapping</a>() {}
<a name="l02432"></a>02432 
<a name="l02433"></a>02433   <span class="keyword">virtual</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>* constClone()<span class="keyword"> const </span>{
<a name="l02434"></a>02434     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00056.html" title="Moves another ConstMapping in its time dimension.">ConstDelayedMapping</a>(mapping-&gt;<a class="code" href="a00058.html#a741e083fb18412a3d9cde7eac3dced10" title="returns a deep copy of this mapping instance.">constClone</a>(), delay);
<a name="l02435"></a>02435   }
<a name="l02436"></a>02436 };
<a name="l02437"></a>02437 
<a name="l02447"></a><a class="code" href="a00083.html">02447</a> <span class="keyword">class </span>MIXIM_API <a class="code" href="a00083.html" title="Moves another Mapping in its time dimension.">DelayedMapping</a>: <span class="keyword">public</span> <a class="code" href="a00022.html" title="Common base for Const- and NonConst-DelayedMapping.">BaseDelayedMapping</a>&lt;Mapping&gt; {
<a name="l02448"></a>02448 <span class="keyword">public</span>:
<a name="l02449"></a>02449   <a class="code" href="a00083.html" title="Moves another Mapping in its time dimension.">DelayedMapping</a>(<a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* mapping, simtime_t_cref delay):
<a name="l02450"></a>02450     <a class="code" href="a00022.html">BaseDelayedMapping&lt;Mapping&gt;</a>(mapping, delay) {}
<a name="l02451"></a>02451 
<a name="l02452"></a>02452   <span class="keyword">virtual</span> ~<a class="code" href="a00083.html" title="Moves another Mapping in its time dimension.">DelayedMapping</a>() {}
<a name="l02453"></a>02453 
<a name="l02454"></a><a class="code" href="a00083.html#a27c3282471353c1e6def96b4e1604c56">02454</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00083.html#a27c3282471353c1e6def96b4e1604c56" title="Changes the value of the Mapping at the specified position.">setValue</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos, Argument::mapped_type_cref value) {
<a name="l02455"></a>02455     mapping-&gt;<a class="code" href="a00136.html#ab8906dfac661d5c6a0a35cf1744f06ed" title="Changes the value of the Mapping at the specified position.">setValue</a>(delayPosition(pos), value);
<a name="l02456"></a>02456   }
<a name="l02457"></a>02457 
<a name="l02458"></a><a class="code" href="a00083.html#ae298d25469c44c9cad54b33e8a787637">02458</a>   <span class="keyword">virtual</span> <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* <a class="code" href="a00083.html#ae298d25469c44c9cad54b33e8a787637" title="Returns a deep copy of this Mapping.">clone</a>()<span class="keyword"> const </span>{
<a name="l02459"></a>02459     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00083.html" title="Moves another Mapping in its time dimension.">DelayedMapping</a>(mapping-&gt;<a class="code" href="a00136.html#a95f064bd4bc5a22aef1cf0e4a6052ec7" title="Returns a deep copy of this Mapping.">clone</a>(), delay);
<a name="l02460"></a>02460   }
<a name="l02461"></a>02461 
<a name="l02462"></a><a class="code" href="a00083.html#a52ea3c1399aaecb055d63c535925bc33">02462</a>   <span class="keyword">virtual</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00083.html#a52ea3c1399aaecb055d63c535925bc33" title="Returns a pointer of a new Iterator which is able to iterate over the Mapping and can change it...">createIterator</a>() {
<a name="l02463"></a>02463     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00520.html#gaf6d7bb3c43fe0bda97133e548ce327c2" title="Iterator for a DelayedMapping.">DelayedMappingIterator</a>(mapping-&gt;<a class="code" href="a00136.html#ab78335a7a119893d1e04495f7f587ca3" title="Returns a pointer of a new Iterator which is able to iterate over the Mapping and can change it...">createIterator</a>(), delay);
<a name="l02464"></a>02464   }
<a name="l02465"></a>02465 
<a name="l02466"></a><a class="code" href="a00083.html#a4dcb7018c79d6db7f0dc884dcabbcec1">02466</a>   <span class="keyword">virtual</span> <a class="code" href="a00137.html" title="Defines an iterator for a Mapping which is able to iterate over the Mapping.">MappingIterator</a>* <a class="code" href="a00083.html#a4dcb7018c79d6db7f0dc884dcabbcec1" title="Returns a pointer of a new Iterator which is able to iterate over the function and can change it...">createIterator</a>(<span class="keyword">const</span> <a class="code" href="a00013.html" title="Defines an argument for a mapping.">Argument</a>&amp; pos) {
<a name="l02467"></a>02467     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="a00520.html#gaf6d7bb3c43fe0bda97133e548ce327c2" title="Iterator for a DelayedMapping.">DelayedMappingIterator</a>(mapping-&gt;<a class="code" href="a00136.html#ab78335a7a119893d1e04495f7f587ca3" title="Returns a pointer of a new Iterator which is able to iterate over the Mapping and can change it...">createIterator</a>(delayPosition(pos)), delay);
<a name="l02468"></a>02468   }
<a name="l02469"></a>02469 };
<a name="l02470"></a>02470 
<a name="l02471"></a>02471 
<a name="l02472"></a>02472 MIXIM_API <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* operator*(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2);
<a name="l02473"></a>02473 MIXIM_API <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* operator/(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2);
<a name="l02474"></a>02474 MIXIM_API <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* operator+(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2);
<a name="l02475"></a>02475 MIXIM_API <a class="code" href="a00136.html" title="Represents a changeable mapping (mathematical function) from at least time to Argument::mapped_type.">Mapping</a>* operator-(<span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f1, <span class="keyword">const</span> <a class="code" href="a00058.html" title="Represents a not changeable mapping (mathematical function) from domain with at least the time to a A...">ConstMapping</a>&amp; f2);
<a name="l02476"></a>02476 
<a name="l02477"></a>02477 <span class="preprocessor">#endif </span><span class="comment">/* SIGNALINTERFACES_H_ */</span>
</pre></div></div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><b>MappingUtils.h</b>      </li>

    <li class="footer">Generated on Tue Mar 5 2013 21:26:30 for MiXiM by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
   </ul>
 </div>


</body>
</html>
